0

複数のクライアント サイトで使用するアプリケーションを開発しています。これらは、次のように、サブドメインまたはパス (私は制御できません) としてホストされます。

  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) でホストされている場合、コンパイルされたアセットが見つからないことですが、パスが存在しない場合は完全に正常にロードされます。いくつかのデバッグを行うと、2 番目の URL の例でアセットをロードするには、何らかの理由で/buildディレクトリを指定する必要があることがわかりますが、 /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

ここで何が間違っていますか?

4

1 に答える 1

1

これに対する答えは、次のように publicPath プロパティをloaderそれ自体に追加することです。

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

以前に別のpublicPathプロパティでこれを試みましたが、これは何も達成しませんでした。

于 2017-01-04T10:10:52.193 に答える