关于nginx配置vue项目页面刷新404

最近项目使用的 "vue": "^2.6.11",

vue.config.js

module.exports = {
  publicPath: "./",
  outputDir: "dist",   //  构建时的输出目录
  assetsDir: "static",   //  放置静态资源的目录
  lintOnSave: false,
  css: {
    loaderOptions: {
        scss: {
            prependData: `@import "~@/assets/css/gloable.scss";`
        }
    }
  },
  productionSourceMap: process.env.NODE_ENV === 'production' ? true : false,
  devServer: {
    hot: true, //热更新替换,更新页面
    port: '8081', // 端口号
    host: '0.0.0.0',//指定要使用的主机IP。默认情况下这是localhost。
    open: true,   //自动启动浏览器
    compress: true, //为所服务的一切启用gzip压缩
    proxy: {
      '/api': {
        target: 'http://news.baidu.com', // 目标接口的域名
        // secure: true,  // https 的时候 使用该参数
        changeOrigin: true,  // 是否跨域
        pathRewrite: {
          '^/api' : ''  // 重写路径
        }
      }
    }
  }
}

打包之后部署到nginx后浏览器刷新,出现404页面

针对次修改nginx配置如下:

server {
    listen       8889; 
    server_name 192.168.70.133;
    #if ($host != 'www.imofa.net' ) { 
    #    rewrite ^/(.*)$ http://www.imofa.net/$1 permanent; 
    #} 

    access_log logs/access.log;
    error_log logs/error.log;

	root        E:\dist; 

	location / {
		try_files $uri $uri/ @router;  #需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404
		index  index.html index.htm;
	}
	#对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
	#因此需要rewrite到index.html中,然后交给路由在处理请求资源
	location @router {
		rewrite ^.*$ /index.html last;
	}
	
}

重启nginx!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值