【问题标题】:Loading chunk failed on Local IIS在本地 IIS 上加载块失败
【发布时间】:2016-11-30 16:57:46
【问题描述】:

上下文:Asp.Net Core,在本地 IIS、webpack 上发布。

所以我在http://localhost/wanvet 托管了我的一个网站。 (本地 IIS)

对于主页(仪表板),一切都按预期工作。

当我尝试访问另一个组件时,我收到了对 http://localhost/dist/0.hash.chunk.js 的请求,而不是 http://localhost/wanvet/dist/0.hash.chunk.js,其中 wanvet 是我的本地 iis 别名(文件夹)。

这是附加调用的脚本:

BaseURI 是:

src 如下:

这是控制台异常:

我想解决这个问题的一种方法是将网站托管在http://localhost/,但我真的不喜欢它。

从root请求js、css成功:

后期编辑:添加了一个修改输出 publicPath 的答案。我仍然期待其他意见。

【问题讨论】:

    标签: angular iis asp.net-core webpack angular2-routing


    【解决方案1】:

    一个经过测试的想法如下。

    在 webpack.config 中,我们可以定义一个 appName 变量,它代表 IIS 中用于部署应用程序的别名(文件夹)。

    并在我们创建 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 配置中定义 publicPath,dev '/dist/' 和 prod '/appName/dist/'

    【讨论】:

      猜你喜欢
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 2016-05-09
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      • 2013-04-29
      相关资源
      最近更新 更多