在Vue3和Vue2中配置 base 和 publicPath (应用要被部署在一个子路径上)

假设需要部署到 '/app' 路径下

Vue2中可以在 vue.config.js 文件中这样配置:

module.exports = {
  publicPath:'/app/',
};

Vue3中可以在 vite.config.js 文件中这样配置:

export default defineConfig({
  base: '/app/', // 这个类似 Vue 2 中的 publicPath
});

如果是在hash路由模式下部署

在Vue2 中设置路由模块

import Router from 'vue-router'
export default new Router({
  mode: 'hash', 
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
})

在Vue3 中设置路由模块

import routes from './routes'
import {
  createRouter,
  createWebHashHistory,
} from 'vue-router'

export const router = createRouter({
  history: createWebHashHistory(),
  routes: routes.constantRoutes,
})

export default router

如果希望去除路径中的' #' 号,可以进行如下配置

在Vue2中设置路由模块

import Vue from 'vue';
import Router from 'vue-router';
import { constantRoutes } from './routes';  // 你的路由配置文件

Vue.use(Router);

export default new Router({
  mode: 'history',  // 使用 HTML5 History 模式
  base: '/app',  // 设置路由的基础路径为 '/app'
  scrollBehavior: () => ({ y: 0 }),  // 页面滚动到顶部
  routes: constantRoutes,  // 定义你的路由表
});

在Vue3中设置路由模块

import { createRouter, createWebHistory } from 'vue-router';
import { constantRoutes } from './routes';  // 你的路由配置文件

export const router = createRouter({
  history: createWebHistory('/app'),  // 使用 HTML5 History 模式并设置基础路径为 '/app'
  routes: constantRoutes,            // 定义你的路由表
  scrollBehavior: () => ({ y: 0 }),  // 页面滚动到顶部
});

### Vue 3 项目部署到生产环境的最佳实践 为了将 Vue 3 项目成功部署至生产环境,以下是详细的指南最佳实践: #### 1. 构建项目的静态资源 在准备阶段,需要通过构建工具生成优化后的静态文件。对于 Vue CLI 或 Vite 项目,可以运行以下命令来完成此操作: ```bash npm run build ``` 该命令会在 `dist` 文件夹下生成经过压缩、混淆以及优化的静态资源文件[^4]。 如果项目被托管在一个路径(例如 `/demo/`),则需要修改配置文件中的 `base` 属性。如果是使用 Vite,则可以在 `vite.config.ts` 中设置如下内容: ```javascript export default defineConfig({ base: '/demo/', }); ``` 而对于 Vue CLI 用户,在 `vue.config.js` 中应这样定义: ```javascript module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/demo/' : '/', }; ``` 此外,还需确保路由模式与服务器兼容。推荐使用 HTML5 History 模式的路由,并将其初始化为动态加载当前的基础 URL 路径: ```javascript import { createRouter, createWebHistory } from 'vue-router'; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes, }); ``` #### 2. 配置 Web 服务器 常见的 Web 服务器有 Nginx Apache。下面以 Nginx 为例展示如何配置它以支持 Vue 应用程序的历史记录模式。 编辑 Nginx 配置文件,添加类似这样的规则: ```nginx server { listen 80; server_name yourdomain.com; location / { root /path/to/dist; index index.html index.htm; try_files $uri /index.html; # 支持前端路由 } error_page 500 502 503 504 /50x.html; } ``` 这段代码的关键部分在于 `try_files $uri /index.html` 行,这使得即使访问不存在的具体页面地址时也能返回应用入口文件 `index.html`,从而让前端框架接管后续处理逻辑[^4]。 #### 3. 使用 CDN 提升性能 考虑利用 Content Delivery Network (CDN) 来分发 JavaScript、CSS 等大型资产文件。可以通过调整打包脚本来指定外部依赖项从特定 CDNs 加载而不是嵌入本地副本之中。比如借助插件 rollup-plugin-replace 实现替换某些包名成对应 cdn 地址链接形式引入。 #### 4. 设置环境变量管理不同环境下的行为差异 合理运用 `.env.production`,`.env.development`等文件区分开发测试生产正式上线版本之间的区别参数设定如 API endpoints ,debug flags等等[^4]. #### 5. 测试预览效果 最后一步是在实际发布之前先做一轮完整的功能验证工作包括但不限于跨浏览器兼容性检查、响应式布局适配度评估等方面的内容;另外还可以借助一些自动化工具来进行回归测试进一步保障质量稳定可靠. ```python print("以上就是针对Vue3项目部署生产的建议方案") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值