更新:
原来它是Windows上Vue webpack模板中的一个bug,很快就会修复
问题:
我用vue init webpack projectName安装了一个新的Vue项目,现在我在刷新页面时得到了:Cannot GET /path (在本地主机上)。
例如,如果我去/contact,我会看到页面的内容,但是一旦我点击刷新,我就得到了Cannot GET /contact
更重要的是,您现在不能简单地手动在地址栏中键入路由,您将得到相同的错误。
mode: 'history'npm run dev)上看到了这个几天前它确实正常工作了。我现在该怎么做?
互联网上的所有答案都是没用的(也许我没有正确地应用它们)
index.js
import Vue from 'vue'
import Router from 'vue-router'
import Vuetify from 'vuetify'
import 'vuetify/dist/vuetify.min.css'
import Home from '@/components/Home'
import Contact from '@/components/Contact'
Vue.use(Router)
Vue.use(Vuetify)
export default new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/contact',
name: 'Contact',
component: Contact
}
]
})正因为如此,我现在也不能做这种重定向的工作了:
{
path: '*',
redirect: '/'
}我也会犯同样的错误。
所以我想这可能是Webpack的模板错误,我注意到webpack.dev.conf.js现在有点不同,现在有这样的线条:
devServer: {
clientLogLevel: 'warning',
historyApiFallback: {
rewrites: [
{ from: /.*/, to: path.join(config.dev.assetsPublicPath, 'index.html') },
],
},
[...]我想这和这件事有关。
发布于 2018-01-06 09:04:19
在您的webpack.dev.conf.js中,将historyApiFallback: true添加到historyApiFallback: {...}的上方。您可以在github上找到配置中的一些更改。
编辑
尝试将--history-api-fallback添加到package.json中的在线"dev": "webpack-dev-server --inline --history-api-fallback --progress --config build/webpack.dev.conf.js"中,然后再次运行npm install。或者尝试用这个args创建新项目。
注意,该行中缺少的--history-api-fallback可能导致了问题。希望这能解决你的问题。只有这样我才能解决我的错误。
发布于 2018-11-21 00:59:49
对于那些通过VUE CLI 3偶然发现这个问题的人,请将下面的代码添加到vue.config.js中,然后重新运行yarn run serve。
module.exports = {
configureWebpack: {
devServer: {
historyApiFallback: true
}
}
};发布于 2018-03-01 11:49:25
我也有同样的问题。结果表明,如果在dev.config中使用Htmlwebpack插件,则不会自动将html写入磁盘,因此需要HtmlWebpackHarddiskPlugin并在HtmlWebpackPlugin中设置alwaysWriteToDisk: true:
new HtmlWebpackPlugin({
template: 'index.html',
title: 'You app',
alwaysWriteToDisk: true,
}),
new HtmlWebpackHarddiskPlugin(),
new webpack.HotModuleReplacementPlugin()https://stackoverflow.com/questions/48123503
复制相似问题