我有一个使用Azure静态Web应用程序部署的vue项目。项目包含路由器(历史模式)功能。它在本地工作得很好。但部署到Azure后,路径链接无法正常工作。例如,当我尝试mysite.com/about从浏览器导航访问www.example.com时,它返回404错误。
public文件夹中的staticwebapp.config.json文件:(我从微软文档中引用了这个例子)
{
"routes": [
{
"route": "/*",
"serve": "/index.html",
"statusCode": 200
}
]
}
我的路由器js文件:
import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'
Vue.use(VueRouter)
const routes = [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/about',
name: 'About',
component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
},
{
path: '/api',
name: 'Api',
component: () => import('../views/Api.vue')
}
]
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
export default router
3条答案
按热度按时间5q4ezhmt1#
正如其他人提到的,adding "routes.json" to your public folder is deprecated。然而,如果你是新来的,看看以前的答案,你会对新的做法感到更糟。
您要查找的答案是Azure静态Web应用程序配置文件。该文件应放置在名为
staticwebapp.config.json
的应用程序的根目录下。下面是文档中的一个示例。对于单页面应用程序,您最感兴趣的是捕获服务器“不知道”的路由以及应该排除哪些路径。
下面是一个Vue应用程序的示例文件:
3lxsmp7m2#
在
public
目录中创建一个名为routes.json
的文件,并添加以下内容:文件
deikduxw3#
刚刚添加了navigationFallback属性,现在它工作了!!!