用vue开发的单页面应用,为什么不能在内页刷新

发布网友 发布时间:2022-04-24 02:20

我来回答

2个回答

热心网友 时间:2022-04-21 15:47

刷新页面时访问的资源在服务端找不到,因为vue-router设置的路径不是真实存在的路径。
你使用的应该是vue-route的history模式,当使用 history 模式时,URL 就像正常的 url,例如 http://yoursite.com/user/id,也好看!
vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。但是会有“#”,有人觉得地址栏有这个很丑。所以用了history模式
解决方案:

后端配置,举例:

Apache
<IfMole mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.html$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.html [L]
</IfMole>

ngnix
location / {

try_files $uri $uri/ /index.html;
}

Node.js(Express)
https://github.com/bripkens/connect-history-api-fallback
如果你是用 node.js 作后台,可以使用服务端的路由来匹配 URL,当没有匹配到路由的时候返回 404,从而实现 fallback。

热心网友 时间:2022-04-21 17:05

按F12打开开发者调试工具,打开F12 后,浏览器默认是不会缓存的。所以,如果你更新代码后,刷新后应该是能看到新代码的效果的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com