使用vue的history路由模式打包上线,发现控制台报错

  • 点击其他路由模块,报错模块找不到

ChunkLoadError: Loading chunk runHotelCheckin failed.
(missing: http://120.2.3.212:10082/infoManage/static/js/runHotelCheckin.dev.js?v=1704359862052)

后面查找原因是vue.config.js中的publicPath: './'的问题,把它改成publicPath: '/'然后打包就好了

  • 刷新页面之后,引入的其他外部js报错,也同样是路径的问题,引入的时候改成绝对路径就好了

<script src="./static/update.js"></script> 改成 <script src="/static/update.js"></script>

nginx部署

    server {
        listen       10082;
        location / {
            root html;
            try_files $uri $uri/ /index.html;
        }
    }

node部署(参考connect-history-api-fallback)

//1.先安装依赖
npm install --save connect-history-api-fallback
//2.引入中间件
var history = require('connect-history-api-fallback');
//3.使用中间件(下面两种方式)history({})方法内部可配置参数,参考官方文档
//方式一(原生node):
var connect = require('connect');
var app = connect()
  .use(history())
  .listen(3000);
//方式二(express):
var express = require('express');
var app = express();
app.use(history());

参考vue官方文档

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐