繁体   English   中英

仅当我的应用程序未托管在预先存在的路径上时,资产才能正确映射

[英]Assets only correctly map up when my application isn't hosted on a pre-existing path

我正在开发一个可在多个客户端站点上使用的应用程序。 这些托管为子域或路径(我无法控制),如下所示:

  1. https://application.example.com/#/example-page
  2. https://example.com/application/#/example-page

这是我的Webpack 1配置:

module: {
  loaders: [
    {
      ...
    },
    {
      test: /\.(woff2?|eot|svg|ttf|md|jpg|png)$/,
      loader: 'file?name=[hash].[ext]'
    }
  ]
},
output: {
  path: __dirname + "/dist/build/",
  filename: "app.min.js"
}

这样,我的资产就会被编译到/build/文件夹中,其中还包含主要的应用程序JavaScript文件:

我的dist / build文件夹

我遇到的问题是,如果应用程序托管在预先存在的路径(上面的URL示例2)上,则找不到已编译的资产,但是如果不存在路径,则加载完全正常。 进行一些调试后发现,无论出于何种原因,都必须为资产指定/ build目录才能在第二个URL示例中加载资产,但是指定/ build会破坏第一个URL示例:

  1. https://application.example.com/compiled-asset.png✓
  2. https://example.com/application/compiled-asset.png⇐404
  3. https://application.example.com/build/compiled-asset.png⇐404
  4. https://example.com/application/build/compiled-asset.png✓

我在这里做错了什么?

似乎答案是将publicPath属性添加到loader本身,如下所示:

loader: 'file-loader?name=[hash].[ext]&publicPath=./build/'

之前,我曾尝试使用单独的publicPath属性进行此publicPath ,但这并没有实现任何目的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM