通过vue-cli
创建的vue
项目,yarn build
后,用yarn serve
运行没有问题,但是用nginx
提供服务,vuetify
的css
死活无法加载!
Nginx配置
worker_processes 1;
events {
worker_connections 10240;
}
http {
include /usr/local/etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name localhost;
location / {
alias ~/Workspace/peds/portal/dist/;
index index.html;
}
location /api {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://localhost:3000;
}
}
}
直接修改public
目录下index.html
,以CDN
模式引入虽然可以工作,但是找不到根本原因实在是睡不着觉。
读了一百遍vue-cli
和vuetifyjs
的官方文档,逐行比较代码,总算是找到症结所在。原来通过vue-cli
的vue add vuetify
添加的/src/plugins/vuetify.js
有问题!
fix方案如下:
- 修改
src/plugins/
目录vuetify.js
如下:
import Vue from 'vue';
import 'vuetify/dist/vuetify.min.css';
import Vuetify from 'vuetify/lib';
Vue.use(Vuetify);
const opts = {};
export default new Vuetify(opts);
注意:
- 导入
vuetify.min.css
- 要导入
vuetify/lib
(不是vuetify/lib/framework
!)
- 修改
src
目录main.js
如下
// src/main.js
import Vue from 'vue'
import vuetify from './plugins/vuetify' // path to vuetify export
new Vue({
vuetify,
}).$mount('#app')
参考https://vuetifyjs.com/en/getting-started/installation/#webpack-install的vuetify-loader
方案修改。
重新yarn build
,然后nginx -s reload
,打开浏览器测试,OK。