2016-11-30 11 views
0

コンテキスト:Asp.Net Core、ローカルIIS、webpackに公開されています。ローカルIISでチャンクのロードに失敗しました

私はhttp://localhost/wanvetで自分のサイトの1つをホストしました。 (ローカルIIS)

メインページ(ダッシュボード)については、すべて正常に動作します。

別のコンポーネントにアクセスしようとすると、http://localhost/wanvet/dist/0.hash.chunk.jsの代わりにhttp://localhost/dist/0.hash.chunk.jsにリクエストが届きます。ここで、wanvetはローカルのiisエイリアス(フォルダ)です。

BASEURIがあること: Script appending baseURI

srcが、次のされている: Src for current chunk script

そしてここでは、コンソールの例外です: Console exception for chunk loading failed

私は考えます。ここ

は、スクリプト追加の呼び出しがありますこれを解決する1つの方法はhttp://localhost/にサイトをホストすることですが、私はreaですそうではありません。ルートから

成功JSの要求、CSS:

Request from root

後の編集:出力publicPathを変更する1つの答えを追加しました。私はまだ他の意見を楽しみにしています。

答えて

2

テストされたアイデアは以下のとおりです。

webpack.configでは、アプリケーションを展開するためにIISで使用されたエイリアス(フォルダ)を表すappName変数を定義できます。

これを使用して、publicPathプロパティを作成します。もちろん

var isDevBuild = process.argv.indexOf('--env.prod') < 0; 
var appName = 'wanvet'; // folder name in local IIS 
var publicPath = isDevBuild ? '/dist/' : '/' + appName + '/dist/'; 

module.exports = merge({ 
    ........ 
    entry: { 
     'main': './Client/main.ts' 
    }, 
    output: { 
     path: path.join(__dirname, '../wwwroot', 'dist'), 
     filename: '[name].js', 
     publicPath: publicPath 
    }, 
    ........ 
    }, isDevBuild ? devConfig : prodConfig) 

あなたは、両方のDEV/PRODのコンフィグでDEV '/dist/'とPROD '/appName/dist/'をpublicPathを定義することができます。

関連する問題