ruby-on-rails - 文件更改不会反映在 Docker webapp 中
问题描述
我有一个 Rails 应用程序,试图在 Docker 中运行它。我有源代码的绑定挂载,但 Web 服务器没有反映更改。例如编辑 /app/views/layouts/application.html.erb 没有区别。
然后我删除了绑定挂载,并直接在容器中进行了编辑。同样的事情也会发生。我已经删除了浏览器缓存,但每次都会加载旧页面。编辑前后的 inode 是相同的。奇怪的是 - 像重命名整个布局目录这样的剧烈变化会产生影响。
我希望在重新加载页面后立即看到文件更改。从主机运行时,这可以按预期工作,但不能从 docker 运行。
解决方案
正如您在评论中提到的,问题出在(应用程序)服务器端。
Turns out its Rails itself that caches the app in memory - but for prod environment only. Both docker (configured as prod) and host (as dev) is on my local machine, so no other server inbetween. But I did some digging in config/environments/production.rb and set "config.cache_classes = false".
推荐阅读
- flask - 将 Azure Cosmos DB 与 Mongo 和 Flask 连接
- flutter - Flutter PageView,我可以动画从列表中删除项目吗?
- javascript - 如何在 Javascript 中包含来自单独文件的类?
- java - 我不确定为什么我在 jsp 文件中收到此简单代码的错误
- spring - Coinbase Oauth2 授权不弹出对话框
- android - 如何在主屏幕上设置 Fire TV“图标”?
- hyperledger-fabric - 是否可以在超级账本结构链码中使用 goroutine?
- android-studio - 为什么我的应用在点击按钮后使用 MediaPlayer 会崩溃?
- python - 如何在课堂之外访问我的变量?
- maven - Jmeter 无法读取自定义 JAR 依赖项