问题:
当用户在我的网络应用程序(app.mycompany.com/nested/route
之类的嵌套路由)上点击刷新时,路由管理不再由我的Vue.js应用程序(Vue路由器)管理,而是回到我的404路由错误处理程序,由Firebase云功能管理。
编辑 - 见底部,取得进展
我想要实现的目标:
我的设置:
app.get('v1/campaigns', (req, res) => {...
和app.get('v1/userInfo', (req, res) => {...
等等。我的firebase.json文件设置如下:
{
"hosting": {
"public": "dist",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{"source": "**", "function": "app"}
]
}
}
我尝试了什么
我在firebase.json重写部分尝试了多种变体。常见的方法是设置{"source": "**", "destination": "/index.html"}
但是我的Web应用程序工作正常,但API路由" ... / v1 / {campaign |用户}"等等。
我尝试过合并{"source": "**", "destination": "/index.html"}
和{"source": "/v1**", "function": "app"}
,但仍会导致404路线错误。
我尝试在我的functions / index.js中添加路由来管理这个但是似乎无法正确使用它。 (我有一种感觉,我可以在这里得到它,我只是弄乱了一些东西)
// My API Routes
app.get('/v1/campaigns', (req, res) => {
...some code
}
app.get('/v1/userInfo', (req, res) => {
...some code
}
// My Catch All Other routes and send it to Vue.js Route
app.get('**', (req, res) => {
res.sendFile(path.join(__dirname + '/dist/index.html'))
exports.app = functions.https.onRequest(app)

可能的解决方案(但感觉有更好的选择)
app.get('/v1'...
路线的方式有关。感谢任何帮助......
修改
我删除了Express.js文件中的一行代码,这些代码似乎导致了部分问题。
app.use('/dist', express.static(path.join(__dirname, 'dist')))
我在路由器防护中添加了vue-router,用于检查用户是否已登录,如果是则next()route else重定向到登录页面。
我现在让API路由和Web App路由至少在同一个项目中一起工作,而不是返回404错误。
最新问题:
我解决上述问题后,我会更新问题以解答。