因为域名有限,所以想把vue项目部署在某个域名的二级路径上,例如:https://www.example.com/someapp/下
nginx的配置如下:
location ^~ /someapp {
#proxy_read_timeout 1800;
#proxy_connect_timeout 1800;
#proxy_send_timeout 1800;
try_files $uri $uri/ /index.html;
root /var/website/;
}
在/var/website下新建someapp目录,里面放的就是vue项目打包后的html文件
部署上去后,发现无法访问,经过摸索,发现需要修改如下几个地方,记录在这里,供需要的查阅
vue.config.js 修改如下(只把涉及到的配置加上,其他省略了):
'use strict'
const path = require('path')
module.exports = {
dev: {
// 省略
},
build: {
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../dist'),//assetsRoot:打包后文件存放的路径
assetsSubDirectory: 'static',//除了index.html之外的静态资源要存放的路径
assetsPublicPath: '/someapp/',// 代表打包后,index.html里面引用资源的相对地址
publicPath:''
}
}
另外路由的配置也需要修改(增加base项的设置,如下):
router/index.js
import Vue from 'vue'
import Router from 'vue-router'
import store from '../store/index'
Vue.use(Router)
export default new Router({
routes: [
{
path : '/',
redirect : '/home',
},
{ title: '登录',
path : '/login',
component: () => import('@/views/user/login.vue'),
meta: {
keepAlive: false
}
}
],
base:'/someapp/'
})
vue+vite+nginx的配置,详见:https://blog.terrynow.com/2023/10/08/vue-vite-build-deploy-to-secondary-path-config/
文章评论