我在我的一个项目中使用Angular 5 + Webpack。现在我想从CDN加载包含JS文件(包括延迟加载的[System.Web.Http.HttpPost]
public System.Web.Http.IHttpActionResult Post([System.Web.Http.FromBody] CallBackFormModel CallBackFormModel)
{
// your previous code goes here
return Json(new { result = "ok" }, JsonRequestBehavior.AllowGet);
}
文件)的所有资产。
对于CSS和图像,我更改了.chunks.js
的{{1}}选项,因此我可以从CDN加载CSS和图像,但问题在于JS文件。
对于JS文件,我更改了publicPath
,但它给了我这个错误
我也尝试使用webpack
重命名JS文件,但这个技巧也没有用。
我只是想知道自己是朝着正确的方向前进,还是应该以不同的方式思考。
感谢。
答案 0 :(得分:0)
我认为“在进行树震动时使用CDN”讨论可能是一个相当复杂的讨论......
这个答案假定只有在切换到CDN时才会发生中断,否则你的应用程序会得到正确的服务。您确定要投放您的应用吗?
历史API由angular使用,但由于原点不同,因此将其视为安全问题。
假设CDN中的外部可缓存库应该包含在捆绑中,您可以尝试下面列出的几个选项。我会先重新考虑这个假设。 webpack的重点是树木然后捆绑,所以我确信你已经确信捆绑已经缓存并捆绑在CDN上的文件的好处。
如果您确定要采用这种方法,可以做一些事情。您可以在角度路由器上使用hashlocationstrategy:
imports [
RouterModule.forRoot(routes, {useHash: true})
]
或者,您可以在构建应用时使用节点的http服务器完全托管您的应用,并在应用的index.html中使用主机baseUrl。
最后,如果这些都不适合你,你可以尝试使用htaccess文件,或做一些手动路由,但我发现这些方法有点脆弱。
有一些关于SO的预先存在的问题可以解决这个问题,但我认为CDN的皱纹需要一个新的回应。
How to perform redirects in NodeJS like a .htaccess file?
也许更好的答案是问这个问题:如果您的图书馆永远不会改变,并且您的应用程序版本更新,为什么要强迫您的用户重新下载您的图书馆?