随着Web开发的进行,js bundle文件越来越大,这带来了网页初始呈现的巨大延迟。我最近在学习webpack,里面用 require.ensure 来做懒人加载,这真是太神奇了。但是我遇到了一个针对我的具体情况的问题。
描述如下:
当我捆绑我的js文件时,它将生成两个块:
./bundle/bundle.js
./bundle/1.js (which is for lazy lodaing)
但是,我想在不同页面中延迟加载 1.js 。但是它的要求在不同的页面上是不同的。
EG。如果在第1页,它正在请求http://localhost/page1/1.js 在第2页上,它正在请求http://localhost/page2/1.js。
这给后端带来了一个问题,即它不知道如何向其提供文件。真的很奇怪怎么能解决?有没有办法在require.ensure回调函数中操作请求url,这样无论在哪个页面,它都在请求使用相同的url?
答案 0 :(得分:1)
您必须在webpack配置中使用publicPath参数 - 这正是您想要的:
output: {
...
publicPath: '/scripts/' // Path to scripts relative to your site root
}