若依VUE前端打包,nginx非根目录404解决

源码修改部分

1.退出登录(不然退出的时候会404):Navbar.vue:112行

this.$store.dispatch('LogOut').then(() => {
    // 退出登录问题
    // location.href = '/index'
    this.$router.push(`/login?redirect=${this.$route.fullPath}`)
})

2.路由部分(不然【点击/刷新】菜单的时候会404)router/index.vue:168行

// nginx 非根目录需要加base,不然到时候路由进不去
export default new Router({
  mode: 'history', // 去掉url中的#
  scrollBehavior: () => ({ y: 0 }),
  base: "你自己的目录名",
  routes: constantRoutes
})

 3.vue配置文件部分 vue.config.js:21行

 publicPath: process.env.NODE_ENV === "production" ? "/你自己的目录名" : "/",

4.重新登录 request.js:91行

store.dispatch('LogOut').then(() => {
            // 如果是登录页面不需要重新加载
            if (window.location.hash.indexOf("#/login") !== 0) {
              // location.href = '/index';
              this.$router.push(`/login?redirect=${this.$route.fullPath}`)
            }
          })

nginx配置部分

location /目录名 {
            alias  /home/service/nginx/html/目录名;
		    try_files $uri $uri/ /目录名/index.html;
            index index.html index.htm;
        }

参考资源链接:[解决vue项目nginx部署到非根目录下刷新空白的问题](https://wenku.csdn.net/doc/645350b8ea0840391e7797b3?utm_source=wenku_answer2doc_content) 在部署Vue项目到非根目录并希望通过Nginx进行代理时,经常会遇到刷新页面导致404错误的常见问题。这个问题通常与前端路由和后端配置的不一致性有关。为了解决这一问题,需要对Vue项目的配置文件进行相应的修改,并且在Nginx配置文件中进行特定设置。以下是详细步骤和代码示例: 1. 修改Vue项目配置: 打开项目的`config/index.js`文件,找到`build`对象中的`assetsPublicPath`属性。这个属性控制了打包生成的静态资源的访问路径。为了使Vue项目运行在非根目录,需要将其值修改为对应的子目录路径,例如`/your-subdirectory/`。 2. 修改Vue路由配置: 在`router/index.js`文件中,根据需要配置路由。如果要将Vue应用部署在非根目录下,确保所有的路由都在该子目录下,比如`/your-subdirectory/`。 3. 配置Nginx服务器: 编辑Nginx配置文件`nginx.conf`,在`server`块中添加一个`location`块,用于处理对Vue应用的请求。在这个`location`块中,使用`try_files`指令配合`$uri/`和`index.html`来处理前端路由。示例如下: ```nginx location /your-subdirectory/ { try_files $uri $uri/ /your-subdirectory/index.html; } ``` 这个配置会先尝试直接提供请求的文件或目录,如果失败,则尝试请求`your-subdirectory/index.html`,由前端路由处理实际的页面内容。 通过以上步骤,Vue项目就可以被部署在Nginx非根目录下,同时页面刷新也不会导致404错误。建议深入阅读《解决vue项目nginx部署到非根目录下刷新空白的问题》这篇资料,以获得更全面的理解和操作指南。 参考资源链接:[解决vue项目nginx部署到非根目录下刷新空白的问题](https://wenku.csdn.net/doc/645350b8ea0840391e7797b3?utm_source=wenku_answer2doc_content)
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值