【发布时间】:2019-05-23 11:10:36
【问题描述】:
我在 Docker 容器中运行 Rails 应用程序,但在开发环境中苦苦挣扎,因为我无法可靠地将 javascript 更改传播到在 localhost 上运行的应用程序。
识别问题的步骤描述:
- 如果我刷新视图,我可以在控制台中看到 webpacker 正在编译。
- 它会在 public/packs
admin-7c69920b702f68258e99.js中生成一个新的缓存破坏资产 - manifest.json 反映了此更新
"admin.js": "/packs/admin-7c69920b702f68258e99.js" - 我可以反复刷新视图,但网络选项卡显示旧资产名为
admin-4cf5f7c7d6c5ad665fc6.js。
我尝试了以下过程,但即使禁用缓存也不会触发资产刷新。
- 在浏览器中刷新视图触发 webpack 编译
- 通过退出 Docker 并运行
docker-compose up重新启动 Rails 服务器 - 刷新视图
我通常必须再次停止并启动 Rails 服务器以触发资产刷新。对于有效的开发环境来说,这感觉有点像巫毒教。
我想找到一种方法来可靠地确保最新资产反映在我的开发环境中,而无需手动查看资产文件名以确认已发生刷新。
是否有让我可能丢失的资源重新加载的技巧?
我正在使用 ruby:2.3.7 和 Rails 5.2.2.1
【问题讨论】:
标签: ruby-on-rails docker asset-pipeline webpacker