上下文路径的 vue caddy 规则
vue caddy rule for context path
我按照 vue 教程部署上下文路径为 https://cli.vuejs.org/config/#publicpath 的应用程序
我使用了 vue 提供的 caddy 规则,因为我使用的是历史模式 https://router.vuejs.org/guide/essentials/history-mode.html#caddy
我正在使用 caddy 进行部署。
但是当我使用 publicpath 时,我选择了一个有 /path 的路由器配置,它给我 404。它在本地工作正常;但在 caddy 上不工作。
Vue.use(Router)
const routes = [
{ path: '/', component: Home },
{ path: '/markabsent/:studentid/:techerid', component: StudentForm, props: true },
{ path: '/markpresent/:studentid/teacher/:techerid', component: StudentReturnForm},
{ path: '*', component: PageNotFound }
]
export default new Router({
mode: 'history',
base: 'univ',
routes
})
我只使用默认的 caddy 配置,如下所示
0.0.0.0:2015
root /var/www/html
log stdout
errors stdout
rewrite {
regexp .*
to {path} /
}
当我访问 myapp.com/univ/markpresent/43/343 时。 ,它的 404。当我访问 myapp.com/univ/ 时,它会加载初始页面
尝试在您的 rewrite
块上设置 basepath
并重写为 /univ/
(您应用的入口点)
rewrite /univ {
r .*
to {path} /univ/
}
免责声明:我不是很了解Caddy
我创建了一个功能请求票,要求文档包含非 root publicPath
设置。
https://github.com/vuejs/vue-router/issues/2863
Vue 设置
我只是使用默认的 vue create
应用程序和默认路由加上一些小的修改
// vue.config.js
module.exports = {
publicPath: '/univ'
}
// src/router.js
export default new Router({
mode: 'history',
base: process.env.BASE_URL, // this gets the value from publicPath
routes: [
{
path: '/',
name: 'home',
component: Home
},
{
path: '/about/:studentid/:techerid',
name: 'about',
component: () => import(/* webpackChunkName: "about" */ './views/About.vue')
}
]
})
并且在 About.vue
模板中,我添加了
<pre>params = {{ $route.params }}</pre>
然后我使用 npm run build
构建应用程序并将 dist
文件夹内容复制到我的 Caddy 网络根目录中的 univ
目录。
直接在浏览器中打开http://localhost:2015/univ/about/332/2342
显示如下
我按照 vue 教程部署上下文路径为 https://cli.vuejs.org/config/#publicpath 的应用程序 我使用了 vue 提供的 caddy 规则,因为我使用的是历史模式 https://router.vuejs.org/guide/essentials/history-mode.html#caddy
我正在使用 caddy 进行部署。
但是当我使用 publicpath 时,我选择了一个有 /path 的路由器配置,它给我 404。它在本地工作正常;但在 caddy 上不工作。
Vue.use(Router)
const routes = [
{ path: '/', component: Home },
{ path: '/markabsent/:studentid/:techerid', component: StudentForm, props: true },
{ path: '/markpresent/:studentid/teacher/:techerid', component: StudentReturnForm},
{ path: '*', component: PageNotFound }
]
export default new Router({
mode: 'history',
base: 'univ',
routes
})
我只使用默认的 caddy 配置,如下所示
0.0.0.0:2015
root /var/www/html
log stdout
errors stdout
rewrite {
regexp .*
to {path} /
}
当我访问 myapp.com/univ/markpresent/43/343 时。 ,它的 404。当我访问 myapp.com/univ/ 时,它会加载初始页面
尝试在您的 rewrite
块上设置 basepath
并重写为 /univ/
(您应用的入口点)
rewrite /univ {
r .*
to {path} /univ/
}
免责声明:我不是很了解Caddy
我创建了一个功能请求票,要求文档包含非 root publicPath
设置。
https://github.com/vuejs/vue-router/issues/2863
Vue 设置
我只是使用默认的 vue create
应用程序和默认路由加上一些小的修改
// vue.config.js
module.exports = {
publicPath: '/univ'
}
// src/router.js
export default new Router({
mode: 'history',
base: process.env.BASE_URL, // this gets the value from publicPath
routes: [
{
path: '/',
name: 'home',
component: Home
},
{
path: '/about/:studentid/:techerid',
name: 'about',
component: () => import(/* webpackChunkName: "about" */ './views/About.vue')
}
]
})
并且在 About.vue
模板中,我添加了
<pre>params = {{ $route.params }}</pre>
然后我使用 npm run build
构建应用程序并将 dist
文件夹内容复制到我的 Caddy 网络根目录中的 univ
目录。
直接在浏览器中打开http://localhost:2015/univ/about/332/2342
显示如下