由于某些未知原因,Rails 7 (开发环境) 在我按 F5 刷新浏览器时无法自动检测到 application.js
中的更改。该文件位置为默认设置,且我的配置基本与默认设置相同。
当我启动服务器时,它会读取某个缓存版本的 JavaScript。我需要显式运行 rails assets:precompile
以使其正常工作。
Importmap 看起来很标准:
# Pin npm packages by running ./bin/importmap
pin "application", preload: true
...
布局文件似乎也非常标准:
<!DOCTYPE html>
<html>
<head>
<title>Whatever</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="<%= image_path('favicon.svg') %>">
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
<%= javascript_importmap_tags %>
</head>
...
我尝试在我的development.rb
中设置config.importmap.sweep_cache = true
(按照importmap文档),但似乎没有效果。
目前我非常绝望,不明白为什么需要在开发环境中运行rails assets:precompile
。
此外,我的应用程序不在“localhost”域上运行,而是在类似于dev.server-somewhere.com
的域上(因此可以从任何地方访问),使用SSH重定向,类似于ngrok。不确定是否是问题的原因。
澄清一下:我不需要实时刷新功能,只需使用F5页面刷新即可。