在使用 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模式