VUE3路由访问的一个问题?
一个项目,放在服务器的二级目录workerlog下路由设置如下:
const router = createRouter({
history: createWebHistory('/workerlog/'),
routes //上面的路由数组
})
vite.config.js
// 静态资源基础路径 base: './' || '',
base: process.env.NODE_ENV === 'production' ? '/workerlog/' : '/',
又在该二级目录下新建文件.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /workerlog/index.html [L]
</IfModule>
目前项目可以正常访问,但是如果分享给朋友网址:https://www.xxx.cn/workerlog是可以访问的;但是如果分享的是项目中某一页https://www.xxx.cn/workerlog/user,就报错了找不到该页。请问这个问题需要在哪找原因?
回复
1个回答
test
2024-07-06
base: process.env.NODE_ENV === 'production' ? '/workerlog/' : '/',这一条,你需要确定你在部署阶段有 process.env.NODE_ENV并等于production
不然的话,你就直接指定 base:'/workerlog/' 吧,开发阶段也没有多大影响
Apache如以下配置
RewriteCond %{REQUEST_URI} ^/(workerlog|workerlog/.*)$
RewriteRule ^/workerlog/index\.html$ - [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(workerlog|workerlog/.*)$ workerlog/index.html [L]
试试这样
具体看https://www.zhihu.com/question/46630687/answer/157166318 最后一段
几年前写的了,有的东西和现在不一样了,但是Apache配置没有变。我现在的项目也用VUE3,还是可以用的
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容