我有一个在 Homestead 中运行的 Laravel 5.2 安装程序,并使用 Vue.js 路由器构建一个 SPA。我试图从我知道可以完成的 URL 中完全删除 #hash,但我不断收到错误消息:
我已经将 rewrite ^(.+)$ /index.html last;
添加到我在 Homestead 的虚拟主机文件中:
server {
listen 80;
listen 443 ssl;
server_name app.myproject.dev;
root "/home/vagrant/Code/vibecast/app.myproject.com/public";
rewrite ^(.+)$ /index.html last;
index index.html index.htm index.php;
charset utf-8;
...
}
当我重新启动并打开一个页面时,我得到一个 500 Internal Server Error
。
我需要在 Laravel 的路由中添加什么吗?
var router = new VueRouter({
hashbang: false,
history: true,
linkActiveClass: "active"
})
在四处导航时,我可以在没有#hash(或修改后的主机文件)的情况下使用它,但在我重新加载页面时失败。
原文由 Jack Barham 发布,翻译遵循 CC BY-SA 4.0 许可协议
我设法通过 Matt Stauffer 的演示应用程序找到了解决方案。首先,无需更新 vhosts 文件。只需要将
routes.php
中的 SPA/Vue.js 路由更新为:如果你有一个管理面板并且不想考虑它的前缀
当然,像这样初始化 Vue.js 路由器:
参考: https ://github.com/mattstauffer/suggestive/blob/master/app/Http/routes.php#L9