编辑: 一个比我原来的问题更简单的例子,我的 CSS 遇到了相同的缓存问题。使用
dartsass-rails
gem,bin/rails dartsass:watch
正在开发中。默认配置。对我的 SASS 文件的更改会引发错误,因为 Rails 会寻找过时的摘要。
ActionController::RoutingError (No route matches [GET] "/assets/application-01d05ee418a658bda88e5c4b0f5b5b1e7610df787a559e2151838d567ecfe62d.css"):
(原帖如下)
我有一个刺激控制器
app/javascript/editor/section.js
。我使用默认的 Rails 7 配置,使用导入映射和 Stimulus。我在 development
环境中本地运行 Puma,默认配置没有更改。
每当我对刺激控制器进行更改时,Web 服务器都不会接收更改,并继续查找过时的控制器摘要,抛出 404 错误。
Javascript 控制台错误如下:
GET http://localhost:3000/assets/editor/section-ca5da14b07bf02053399e5391d999b5870acc0d8783bb5d7844ce5a22f2278da.js
net::ERR_ABORTED 404 (Not Found)
Failed to register controller: editor (controllers/editor_controller) Error: 404 Not Found
http://localhost:3000/assets/editor/section-ca5da14b07bf02053399e5391d999b5870acc0d8783bb5d7844ce5a22f2278da.js
imported from http://localhost:3000/assets/controllers/editor_controller-0…31577c25719d88e9ca691b7736994a3335959f5513834f370414835d3.js
Puma 控制台也抱怨:
ActionController::RoutingError (No route matches [GET] "/assets/editor/section-ca5da14b07bf02053399e5391d999b5870acc0d8783bb5d7844ce5a22f2278da.js"):
错误原因已知:文件已更改并已重建,因此摘要已更改。我只是不明白为什么没有立即获取更新的文件。
我观察了 Firefox 和 Chrome 中的行为,并为两者启用了
Disable HTTP Cache (when toolbox is open)
选项。重新启动 Puma Web 服务器也可以解决该问题。
我在使用带有 importmaps 的刺激时遇到了类似的问题,但我的问题是由我的刺激控制器位于
app/components
目录中的视图组件中引起的,其中 importmap-rails gem 缓存扫描不会隐式观看,所以我有在 config/application.rb: 中添加此行
config.importmap.cache_sweepers << config.root.join("app/components")
您的刺激控制器似乎位于
app/javascript
中,默认情况下应该观看它。
也许您可以尝试在本地缓存清除代码中放置调试器断点?
即。
bundle open importmap-rails
debugger
语句(例如 lib/engine.rb)以了解发生了什么