Rails应用CSS修改后不生效,每次调整需重新编译资产问题求助
Rails 开发环境CSS修改不生效解决方案
你大概率是不小心在开发环境执行过资产预编译命令,导致Rails优先读取public/assets下的预编译产物,忽略你修改的源码文件,可按以下步骤排查修复:
第一步:清理历史预编译文件
直接删除开发环境下生成的预编译资产目录,执行命令:rm -rf public/assets
删完之后无需重启服务,直接刷新页面就能看到修改后的样式,这一步能解决90%的同类问题。
第二步:核对开发环境配置
如果删完还是有问题,检查config/environments/development.rb文件,确认以下配置项的值正确:
config.assets.compile = true开启开发环境实时编译资产,不需要手动预编译config.assets.debug = true关闭资产合并,支持单文件热更新config.assets.digest = false开发环境禁用资源文件名哈希后缀config.public_file_server.enabled = false避免直接读取public目录下的静态资源文件
第三步:排查其他干扰项
- 确认你启动Rails服务时没有指定生产环境,不要带
RAILS_ENV=production参数,默认启动的development环境即可 - 浏览器打开开发者工具,勾选「禁用缓存(仅在开发者工具打开时生效)」选项,避免浏览器缓存旧的样式文件
- 要是用的是Rails 7+默认的Propshaft资产管道,配置逻辑和上述一致,同样优先执行第一步删除
public/assets目录即可
内容的提问来源于stack exchange,提问作者Muhammad Waseem
相关产品推荐
相关产品推荐

