首页 > 其他分享 >vue——抽取请求配置文件,打包后修改配置文件可修改请求地址,不用二次打包。问题:本地启动,静态资源404/修改静态资源后不生效

vue——抽取请求配置文件,打包后修改配置文件可修改请求地址,不用二次打包。问题:本地启动,静态资源404/修改静态资源后不生效

时间:2024-10-29 15:21:15浏览次数:5  
标签:配置文件 js 修改 path config 打包

参考:

1.https://blog.csdn.net/u012193330/article/details/83310924  webpack中的path、publicPath、contentBase的区分

2.https://www.cnblogs.com/beichengshiqiao/p/17339341.html  vue全家桶进阶之路48:Vue3 跨域配置devServer的参数和设置

3.https://www.cnblogs.com/jingxuan-li/p/14656997.html Webpack之 webpack-dev-server 中的 contentBase配置及作用

 

我的情况

vue2项目,想抽取请求配置文件,达到打包后修改配置文件即可修改请求地址,不用二次打包的效果。

1.根目录下(与index.html文件同级)新建public/js/config.js文件,内容如下:

(function () {
  const APP_CONFIG = {
    API_BASE_URL: 'http://xxx:8080', // 后台请求地址
  };

  if (window) window.APP_CONFIG = APP_CONFIG;
})();

2.html文件中引入:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport"
    content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
  <link rel="icon" href="<%= htmlWebpackPlugin.options.url %>favicon.ico">
  <title>测试系统</title>
  <script src="public/js/config.js"></script>
</head>

<body>
  <div id="app"></div>
</body>
</html>

3.具体使用:

axios.defaults.baseURL = window.APP_CONFIG.API_BASE_URL;

注意:一定不要在内部的公共js,如封装的http.js中引入config.js,打包的时候会对其进行编译,导致打包后再修改请求地址无效。

4.打包配置

我的项目打包时指定的是webpack.config.prod.js文件:

...
// 不需要压缩的静态文件 new CopyWebpackPlugin({ patterns: [ { from: path.resolve(__dirname, './public'), to: 'public' } ] })
...

 

出现的问题

1.本地启动,config.js文件404

2.本地启动,修改config.js文件后不生效

3.打包一次后,问题1解决了,但问题2仍存在

 

原因

静态资源根目录 contentBase 配置有误。

我的原webpack.config.dev.js文件有指定静态资源根目录:

const path = require('path');
...
devServer: {
    ...
    contentBase: path.resolve(__dirname, './dist'), // << 问题关键  指定静态文件的目录,默认为项目根目录
    ...
}

解决方法

注释掉,默认根目录即可

 

标签:配置文件,js,修改,path,config,打包
From: https://www.cnblogs.com/linjiangxian/p/18513384

相关文章

  • 最简单的pyinstaller打包exe方式
    1.背景在实际工作过程中,python项目文件完成开发后,存在打包成exe使用的需求,而如何正确并且快捷的实现打包尤为重要,目前python打包的方式很多,包括py2exe,pyinstaller,cx_Freeze,nuitka以及Pyarmor,本次只针对pyinstaller进行说明。PyInstaller是一个用于将Python应用程序打包成独......
  • C#的vs2019项目打包安装程序exe
    C#的vs2019项目打包安装程序exe1.在扩展插中安装插件在Nget包管理器中搜索如下名字的插件MicrosoftVisualStudioInstallProjects点击安装后重启vs20192.创建SetupProject项目完成安装后点击项目中新建项,创建SetupProject的项目创建完成后点击图中步骤添加文件,将你......
  • 《钢之崛起》三十项风灵月影修改器全面教程:解锁高难度通关技巧
    《钢之崛起》(Steelrising)是一款动作角色扮演游戏,设定在法国大革命的替代历史中。如果你希望使用风灵月影版修改器来解锁高难度通关技巧或增强游戏体验,下面是一份全面的教程。请注意,使用修改器可能会影响游戏的乐趣和挑战性,并且在多人模式下使用可能会违反服务条款。风灵月影......
  • C++之OpenCV入门到提高002:加载、修改、保存图像
    一、介绍今天是这个系列《C++之Opencv入门到提高》得第二篇文章。今天这个篇文章很简单,只是简单介绍如何使用Opencv加载图像、显示图像、修改图像和保存图像,先给大家一个最直观的感受。但是,不能认为很简单,只是让学习的过程没那么平滑一点,以后的路就好走了。OpenCV具......
  • GaussDB如何创建修改数据库和数据表
    一、背景GaussDB是一款由华为开发的企业级分布式数据库,具有高性能、高可用、高可靠性等特点,广泛应用于各种业务场景。本指南将介绍如何在GaussDB中创建数据库和数据表,修改表结构,并添加约束。二、创建数据库和数据表创建数据库在GaussDB中创建数据库可以使用CREATEDATA......
  • element-ui table中使用type=‘selection‘ 实现禁用,勾选,默认选中不可修改 三种状态显
    element-uitable中使用type=‘selection’实现禁用,勾选,默认选中不可修改三种状态显示问题实现效果   需求1.status=‘CheckOk'时勾选框默认选中但不可修改勾选状态2.status=‘CheckFail'时勾选框禁用3.status=‘'时勾选框可以勾选实现思路采用el-table表格自......
  • Ubuntu QTCreator 程序打包
    下载linuxdeployqt官网地址:https://github.com/probonopd/linuxdeployqt/releases安装更改名字mvlinuxdeployqt-6-x86_64.AppImagelinuxdeployqtViewCode修改权限chmod777linuxdeployqtViewCode全局访问sudomvlinuxdeployqt/usr/local/binViewCode测试linuxd......
  • 麒麟系统修改镜像地址,并安装数据库mariadb
    1.跳转到镜像源文件夹cd/etc/yum.repos.d2.备份系统镜像源文件ps:要养成修改系统文件之前做文件备份的好习惯cpkylin_aarch64.repokylin_aarch64.repo.bak3.修改的镜像源vikylin_aarch64.repo[ks10-adv-cdrom]name=KylinLinuxAdvancedServer10-cdrombaseurl......
  • github下载加速[findstr修改hosts]
    @echooffremcolor1fsettitle=github下载加速[修改hosts]title%title%set"HOSTS_PATH=%windir%\system32\drivers\etc\hosts"REM备份原始的hosts文件copy"%HOSTS_PATH%""%HOSTS_PATH%.bak"rem使用findstr获取最后一行setnumber=0for/f"de......
  • 怎么修改网站后台标题?怎样修改企业网站密码?
    修改网站后台标题登录后台管理:首先,你需要登录到你的网站后台管理系统。找到设置选项:通常在后台管理界面的顶部或侧边栏会有“设置”、“系统设置”或“站点设置”等选项。编辑标题:在设置页面中,找到“网站标题”、“站点名称”或类似的字段,输入你想要的新标题。......