You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Webpack 5时Axios加载根目录app.config.json报404的问题

解决方案

问题原因

Webpack 5 的 webpack-dev-server 默认仅提供打包产物及指定静态目录下的文件,项目根目录的 app.config.json 不在默认服务范围内,因此无法通过浏览器或 Axios 访问。

开发环境配置(webpack-dev-server)

修改 Webpack 配置文件(webpack.config.js),在 devServer 中添加 static 配置,将项目根目录纳入静态资源服务范围:

const path = require('path');

module.exports = {
  // 其他已有配置(entry、module、plugins等)
  devServer: {
    static: [
      {
        // 指定项目根目录为静态资源目录
        directory: path.resolve(__dirname),
        publicPath: '/',
        // 禁止列出目录内容,避免暴露根目录下其他文件
        serveIndex: false,
        // 监听文件变化,修改后自动刷新服务
        watch: true,
        // 仅允许访问app.config.json,进一步限制访问范围
        allowlist: [/app\.config\.json$/],
      }
    ],
    // 其他devServer配置(port、hot等)
  }
};

配置完成后,webpack-dev-server 会将根目录下的 app.config.json 映射到服务根路径,此时访问 localhost:8080/app.config.json 或通过 axios.get('/app.config.json') 即可正常加载文件,且修改文件后无需重启服务。

生产环境配置

为确保生产构建后仍能正常访问该文件,需使用 copy-webpack-plugin 将 app.config.json 复制到打包输出目录(通常为 dist):

  1. 安装插件:
npm install copy-webpack-plugin --save-dev
  1. 在 Webpack 配置中添加插件:
const CopyPlugin = require('copy-webpack-plugin');
const path = require('path');

module.exports = {
  // 其他已有配置
  plugins: [
    // 其他已有插件
    new CopyPlugin({
      patterns: [
        { from: path.resolve(__dirname, 'app.config.json'), to: '.' }
      ]
    })
  ]
};

生产构建时,app.config.json 会被复制到 dist 目录根路径,部署后依然可通过 /app.config.json 访问。


内容的提问来源于stack exchange,提问作者Leeroy Jenkins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 14:22:41