vue3 中的publicPath配置,history模式路由配置,index.html中引入public的静态资源

本文介绍了在Vue3项目中遇到的打包配置问题,包括如何设置publicPath以适配不同部署环境,确保静态资源在index.html中的正确引用,以及在启用history模式下解决路由切换404的策略。通过理解并正确配置这些参数,可以确保Vue3应用在生产环境中顺利运行。

vue3打包时遇到的问题

1、publicPath 配置

在vue3中没有了baseUrl,在打包时如果想要设置一个根路径,需要设置在publicPath中

// 例如 https://127.0.0.1/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。
// 例如,如果你的应用被部署在 https://127.0.0.1/admin/,则设置 baseUrl 为 /admin/。
publicPath: process.env.NODE_ENV === "production" ? "/admin/" : "/", // 区分开发环境和生产环境
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
outputDir: 'intelligentTrafficWeb',
2、在index.html中引入public的静态资源

在使用下方形式引用public下的文件,打包前后都不影响

<link rel='stylesheet' href='<%= BASE_URL %>style/common.css' />
3、在打包时设置了publicPath,并且在路由中配置了 mode: ‘history’,切换路由404

设置base 配置和publicPath相同的路径

export default new Router({
  mode: 'history', // 去掉url中的#
  base: process.env.NODE_ENV === "production" ? "/admin/" : "/",
  ...
})
### Vue 项目中配置 index.html 引入的外部 JS 文件方法 在 Vue 项目中,如果需要在 `index.html` 中引入外部 JS 文件并确保其正确加载和使用,可以通过以下方式实现。 #### 1. 使用绝对路径引入外部资源 为避免相对路径导致的刷新失效问题,推荐使用绝对路径引入外部 JS 文件。例如: ```html <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> ``` 通过这种方式引入的外部资源不会受到路由模式(如 `history` 模式)的影响[^1]。 #### 2.Vue 配置中指定公共路径 如果项目使用了 `vue-cli` 构建工具,可以在 `vue.config.js` 中配置 `publicPath` 属性。该属性用于指定应用部署的基础路径,确保静态资源能够正确加载。例如: ```javascript module.exports = { publicPath: process.env.NODE_ENV === &#39;production&#39; ? &#39;/your-path/&#39; : &#39;/&#39; }; ``` 当 `publicPath` 设置为 `/` 时,所有资源路径将相对于根目录加载,从而避免路径错误[^1]。 #### 3. 使用 `public` 文件夹托管静态资源 Vue CLI 提供了一个 `public` 文件夹,专门用于存放需要直接引用的静态资源。可以将需要引入的 JS 文件放入 `public` 文件夹中,并在 `index.html` 中通过绝对路径引用。例如: ```html <script src="/web3.min.js"></script> ``` 此时,`web3.min.js` 应放置在 `public` 文件夹下[^1]。 #### 4. 确保脚本加载顺序 在 `index.html` 中引入的外部 JS 文件会优先于 Vue 组件加载。如果某些组件依赖这些外部库,请确保在组件初始化时检查全局变量是否存在。例如: ```javascript if (typeof jQuery !== &#39;undefined&#39;) { console.log(&#39;jQuery 已正确加载&#39;); } else { console.error(&#39;jQuery 加载失败&#39;); } ``` #### 5. 使用 Webpack 插件管理外部依赖 对于更复杂的场景,可以使用 Webpack 的 `externals` 配置项来管理外部依赖。例如: ```javascript module.exports = { configureWebpack: { externals: { jquery: &#39;jQuery&#39; } } }; ``` 上述配置告诉 Webpack 不要将 `jquery` 打包到最终的构建文件中,而是从全局环境中获取[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值