在Vue中重新加载页面时找不到页面

时间:2019-11-05 04:08:01

标签: vue.js vuejs2 vue-router

是的,也有人问过这个问题,这个问题触发了 https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations

为什么我再次问这个?我确实在Link所指的根文件夹中创建了文件.htaccess,但仍然无法正常工作,这是我在根目录中的my.htaccess

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

我创建错误的名称文件吗?

我的vue应用程序没有服务器,尽管就像静态网站一样

所以我有一条这样的路线

mydomain.com/detail/:name

当我转到该页面时,它很好,但是当我再次刷新时,它不再起作用,它说page not found

我将此应用部署在surgeGitLab Pages上(使用其ci / cd),结果相同

那我的Vue怎么了?

1 个答案:

答案 0 :(得分:0)

Surge不支持.htaccess文件。您添加的文件特定于运行Apache的服务器。

从他们的文档中,有两种方法可以做到这一点。

1:添加redirects

  

ROUTER文件是Surge Plus的一部分。发布后,系统会提示您直接从CLI升级项目。

不幸的是,您需要一个升级的帐户才能访问此功能。他们也没有任何更复杂的重定向示例,因此您需要自己尝试一下,或者寻求他们的支持。

2:添加一个200.html

  

要在Surge中利用此功能,请将200.html文件添加到项目的根目录中。现在,当您收到一个没有静态HTML页面的URL请求时,它将到达200个页面,从而允许您使用客户端路由器。

您的200.html文件应包含足够的HTML和javascript,以挂载您的应用并允许您的路由器接管。您可以先复制应用程序index.html,然后将内容放置在与index.html相同的文件夹中的200.html中。