2 回答
TA贡献1840条经验 获得超5个赞
为了摆脱散列,我们可以使用路由器的历史模式,它利用history.pushStateAPI 实现 URL 导航,而无需重新加载页面:
const router = new VueRouter({
mode: 'history',
routes: [...]
})
避免在使用历史模式时出错。您需要适当的服务器配置,
示例服务器配置
阿帕奇
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
娘娘腔
location / {
try_files $uri $uri/ /index.html;
}
欲了解更多信息。访问文档 https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations
TA贡献1155条经验 获得超0个赞
正如官方文档所说,它的默认模式vue-router
是哈希模式——它使用 URL 哈希来模拟完整的 URL,这样当 URL 更改时页面不会重新加载。
当您使用历史模式时,如果没有正确的服务器配置,如果用户http://myurl.com/highlights
直接在浏览器中访问,他们将收到 404 错误。
因此,您需要做的就是向您的服务器添加一个简单的全能回退路由。如果 URL 与任何静态资产都不匹配,则它应该提供与index.html
您的应用所在的页面相同的页面。
更多服务器配置信息可以查看这个-example-server-configurations
添加回答
举报