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.6k
1 个回答

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 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题