当路径改变时,Webpack从错误的URL加载

时间:2016-02-23 17:33:36

标签: javascript reactjs webpack webpack-dev-server

我正在编写一个反应应用程序,当我导航到import org.hibernate.criterion.Criterion; import org.hibernate.criterion.LikeExpression; import org.hibernate.criterion.MatchMode; public class EscapedLikeRestrictions { private EscapedLikeRestrictions() {} public static Criterion likeEscaped(String propertyName, String value, MatchMode matchMode) { return likeEscaped(propertyName, value, matchMode, false); } public static Criterion ilikeEscaped(String propertyName, String value, MatchMode matchMode) { return likeEscaped(propertyName, value, matchMode, true); } private static Criterion likeEscaped(String propertyName, String value, MatchMode matchMode, boolean ignoreCase) { return new LikeExpression(propertyName, escape(value), matchMode, '!', ignoreCase) {/*a trick to call protected constructor*/}; } private static String escape(String value) { return value .replace("!", "!!") .replace("%", "!%") .replace("_", "!_"); } } 时一切正常,但当我尝试转到localhost:3000时,我收到一条错误消息,告诉我localhost:3000 /foo/bundle.js无法加载。

对我来说,这似乎是Webpack在bundle.js的错误位置查找的问题,但我不确定。如何让应用程序始终查看localhost:3000/foo/page的bundle.js?

这是我的一些webpack配置。

localhost:3000

1 个答案:

答案 0 :(得分:11)

output.publicPath: '/'添加到您的网络包配置中。

output: {
  path: BUILD_PATH,
  publicPath: '/',
  filename: 'bundle.js'
}

HtmlWebpackPlugin最有可能生成具有以下内容的文件:

<script src="bundle.js"></script>

设置output.publicPath: '/'即可:

<script src="/bundle.js"></script>

来自Webpack Config页面:

  

output.publicPath

     

publicPath指定公共URL地址   在浏览器中引用时的输出文件。对于嵌入的加载器    或标签或参考资产,如图像,publicPath是   当文件与文件不同时,用作文件的href或url()   磁盘上的位置(由路径指定)。这对你有帮助   想要在不同的域或a上托管部分或全部输出文件   CDN。 Webpack Dev Server也使用它从publicPath中获取提示   确定从哪里提供输出文件。和路径一样   可以使用[hash]替换来获得更好的缓存配置文件。