vue router使用history模式发布nginx的打包配置

vue router使用history模式发布nginx的打包配置,第1张

【问题描述】

1.vue router使用history模式,开发环境下运行正常,打包并部署到nginx显示空白页面

2.vue router使用history模式,开发环境下运行正常,打包并部署到nginx显示404

3.vue router使用history模式,开发环境下运行正常,打包并部署到nginx正常访问,但是刷新后显示500

【问题分析】

1.显示空白页面说明静态资源文件没有找到,页面无法渲染出来。

2.报错404时,表示连index.html都没有被命中。

3.输入路径访问,页面显示正常,但是一旦刷新便显示500,说明nginx配置异常。

【信息搜集】

服务器配置:

HTML5模式服务器配置示例

脚手架配置:
VUE-CLI中publicpath配置

【问题解决】

由于nginx上部署了不止一个项目,本项目只能部署到子路径上。根据搜集到的资料修改项目中的配置:

1.修改router.js中路由配置。

const router = new VueRouter({
  mode: 'history',
  base: '/HackerAC/',
  scrollBehavior (to, from, savedPosition) {
    return { x: 0, y: 0 }
  },
  routes
})

2.修改vue.config.js配置。开发环境下项目只需要架设在根目录即可,只是在生产环境下才需要将项目架设在子路径“/HackerAC/”上,因此publicPath应该配置为条件式的。

module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? '/HackerAC/' : '/',
  outputDir: 'dist/HackerAC',
}

3.打包后:

4.将HackerAC文件夹及其下的文件放置到nginx的html目录下:

5.修改nginx配置文件:

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
   
    server {
        listen       8085;
        server_name  localhost;
        
        location ^~ /HackerAC {
            index  /HackerAC/index.html;
            try_files $uri $uri/ /HackerAC/index.html;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

6.启动nginx后,浏览器访问:http://localhost:8085/HackerAC/    即可。

【写在最后】

1.与其怀着白拿的心思全网查找各种博客,翻阅着大量彼此抄袭的文章,还不如静下心来看看官方文档。

2.良好的专业素质和崇高的职业素养是任何一个技术从业者最耀眼的精神品质。

3.触类旁通,学习和成长从照葫芦画瓢开始。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1321726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存