上下文: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别名(文件夹)。
这是附加调用的脚本:
我认为解决此问题的一种方法是在http://localhost/托管网站,但我真的没有。
从root用户成功请求js,css:
稍后编辑:添加了一个修改输出publicPath的答案。我仍然期待其他意见。
答案 0 :(得分:2)
以下是一个经过验证的想法。
在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/'
。