我在我的应用程序中使用了新的文物,似乎经常出现404。尝试加载的文件是较旧的packs/js/application-blah.js
,有时是一个修订版本,有时是第一个修订版本(10多个版本和数周前已部署)。从3.5升级到webpacker 4时,这开始发生(我认为)。
在12个小时内,我看到404出现10个错误,并且在该时间段内平均每分钟显示40页,因此这种情况很少见,我无法重现。它似乎并不是特定于操作系统或浏览器的,从Windows上的Edge到iOS 12上的Safari,我都可以看到它。
似乎还在尝试从packs/
引入文件,我认为webpacker 4中应该不再存在该文件?
这是我在《 New Relic》中看到的摘录:
No route matches [GET] "/packs/js/application-1a5742633d44555a15cf.js"
No route matches [GET] "/packs/application-b8e132938408ef6c4ee9.js"
packs/manifest.json
如下所示:
{
"application.js": "/packs/js/application-63945be2fec97ef46418.js",
"application.js.map": "/packs/js/application-63945be2fec97ef46418.js.map",
"entrypoints": {
"application": {
"js": [
"/packs/js/application-63945be2fec97ef46418.js"
],
"js.map": [
"/packs/js/application-63945be2fec97ef46418.js.map"
]
}
}
}
该错误在部署后一两天内出现,但在过去的一个周末(周五没有部署)没有出现,因此让我认为这是一个缓存问题。尽管它尝试加载的b8e...
始终是相同的,但从未更改。
我运行了一个脚本来下载该页面,然后抬头查看它试图提供的内容,并且只看到正确的文件,因此我怀疑它可能与客户端相关?该应用程序使用Turbolinks,但是,如果它试图抓取打包文件,则应表示它已加载了整个页面,因此Turbolinks不应缓存任何旧文件。
如果任何人有什么见识可以提供,我将不胜感激!