【发布时间】:2020-01-31 12:07:14
【问题描述】:
我设置了一个 node.js /Express 服务器,它从根 url 路径 (localhost:3333) 在公共文件夹中为我的单页应用程序(在 Vue.js 中)提供服务。
现在,在我的 SPA 中的 index.html 中,我可以轻松地在我的应用程序中导航到其他页面(这些页面都由 vue.js History API 处理,(不是哈希值))。
但是,如果我在浏览器中直接输入一些路由,该路由应该指向我的 SPA 中的某个子页面(例如 localhost:3333/about.html),则该路由正试图从我的 node.js 程序中提供当然不认识那条路线...
我怎样才能让我的 SPA 直接处理这条路线,而不是通过我的 node.js 程序?我找到了某种解决方案,通过重定向所有内容而不是根 url 让它为我的 dist SPA 文件夹中的 index.html 页面提供服务:
app.all('/*', function(req, res) {
res.sendfile('index.html', {root: publicDir});
});
首先,我不太明白我的 SPA 是如何处理这个问题的……我知道我提供了我的 index.html 页面,但它会自动通过我的 Vue 应用程序将自己重定向到 /about 子页面,或者如何这行得通?
其次,如何将路由处理传递给您的 SPA 而不是 node.js 是推荐/甚至标准的方式吗?还是有其他更好的方法?
【问题讨论】:
标签: javascript node.js express vue.js routing