vue-cli3 使用子目录部署问题

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

阅读 5.2k

推荐阅读
79px
用户专栏

前端开发

6 人关注
21 篇文章
专栏主页