关于vue部署到nginx服务下,非根目录,刷新页面404怎么解决?

将vue项目部署到nginx遇到了刷新页面跳转到404错误页面的问题,项目不是部署在根目录下面。有相关同学遇到过类似情况吗。我已经安装官网的配置 try_files $uri $uri/ /index.html;

clipboard.png

nginx配置

location / {
          proxy_pass         http://xxxx;
    }

    location /category {
            root        /home/tv;
            index       index.html;
            try_files $uri $uri/ /index.html;
    }

webpack 配置

 build: {
env: require('./prod.env'),
index: path.resolve(__dirname, '../dist/index.html'),
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: '/category/',
productionSourceMap: true,
// Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
// Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report

},

阅读 13.2k
4 个回答

正确配置

 location /category {
        root        /home/tv;
        index       index.html;
        try_files $uri $uri/ /category/index.html;
}

nginx配置如下

rewrite ^.+(?<!js|css|png|map)$ /index.html break;

把你的那个try_files替换掉

看到你有修改vue-router的mode

改回来刷新再试试吧

========================

图片描述

除了上面提到的,应该在webpack的配置中要添加{publicPath: '/category/'}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题