Vue.js 在Vue单页应用程序中,如何防止刷新时出现404

Vue.js 在Vue单页应用程序中,如何防止刷新时出现404,vue.js,vue-router,Vue.js,Vue Router,我的单页Vue应用程序正在My_domain.com/My_app/上运行,但当我在任何地方刷新时,我会得到一个404/未找到(不在我的本地开发环境中)。我已经根据文档设置了一个.htaccess文件,我的router&vue.config.js文件是根据我对如何防止这种情况的理解配置的,但我仍然得到了404。有人能解释一下吗?(这都是根据&Vue.js文档) my vue.config.js(相关摘录): module.exports={ publicPath:process.env.NODE

我的单页Vue应用程序正在My_domain.com/My_app/上运行,但当我在任何地方刷新时,我会得到一个404/未找到(不在我的本地开发环境中)。我已经根据文档设置了一个.htaccess文件,我的router&vue.config.js文件是根据我对如何防止这种情况的理解配置的,但我仍然得到了404。有人能解释一下吗?(这都是根据&Vue.js文档)

my vue.config.js(相关摘录):

module.exports={
publicPath:process.env.NODE_env==='production'?'/my_app/':'/',
//[等]
routes.js(相关摘录):

导出默认新路由器({
模式:“历史”,
base:process.env.base_URL,//base:“/my_app/”,也可以是NG
路线:[
{
路径:'*',
重定向:'/index.html'
},
{
路径:“/”,
重定向:'/index.html'
},
//[剪下…我的命名路线]
//我也试着搬家。。。
{
路径:'*',
重定向:'/index.html'
},
//…直到我的路线的尽头
]
.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /my_app/
    RewriteRule ^index\.html$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.html [L]
</IfModule>

重新启动发动机
重写基本/我的应用程序/
重写规则^index\.html$-[L]
重写cond%{REQUEST_FILENAME}!-f
重写cond%{REQUEST_FILENAME}!-d
重写规则。/index.html[L]
多谢各位


威士忌T.

您需要在最终的
重写规则
中使用相对于
重写基
的路径,即

RewriteRule . index.html [L]


现在一个更好的选择是使用。你所需要的就是

FallbackResource /my_app/index.html

以及相应的
索引
覆盖,您可能已经覆盖了这些索引。

谢谢您,菲尔!