5

在使用 vue-cli3 build的时候,使用非子目录需要在 vue.config.js 中添加如下代码:

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

但是build完后,放在nginx服务下,会看到如下报错,页面也显示 no-script 的内容

[Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.

网上找了很多,并没有找到答案。后来发现 vue-router 是用了 history 模式,但是 nginx 并没有添加相应的配置便会出现这个问题。所以,如下解决方案:
1.变更生产环境配置,使得支持 history 模式。这里只需要修改 nginx 的配置,把 404 指向 index.html 即可。
2.不在使用history模式


源泉
367 声望17 粉丝

喜欢简单的东西。习惯听歌写代码。