通过webpack生成的资产很少。资产本身非常规律,application.js,application.css,images等。关键是在运行时,资产应该托管在特定的服务器端程序集中,因此,应该以这种方式更改所有URL:
dist/application.js
==> ?path=content.application.js
dist/application.css
==> ?path=content.application.css
...依此类推输出包中的每个样式/脚本/图像。
我尝试了输出部分的publicPath
选项,但看起来这个功能并不是那么强大。所以,如果我这样做:
output: {
// ...
publicPath: "?path=content."
},
当root html的结果是这样的时候:
<script type="text/javascript" src="?path=content./application.js">/script>
<link href="?path=content./application.css" rel="stylesheet"></head>
这是不正确的,因为它有额外的/
我无法摆脱。
如果publicPath
是一个为每个资源返回动态路径的函数,那就太棒了:
output: {
// ...
publicPath: function(originalFile){
return /* generate publicPath dynamically */
}
},
...但是webpack2并非如此。那么是否有任何方法可以全局替换所有资源的公共URL?或者也许是一些装载机。