Ruby on Rails中sass-rails无法自动编译SCSS文件的问题咨询
嘿,作为Rails和Stack Overflow的新手,能自己摸索出解决办法已经超棒啦!其实不用每次手动删除tmp文件夹,有几个更简便的方式能让你修改.scss文件后立刻看到样式变化,结合你的Rails 5.x环境,给你整理几个实用技巧:
强制浏览器硬刷新:有时候浏览器会顽固缓存旧的CSS文件,哪怕服务器已经更新了内容。试试按
Ctrl+Shift+R(Windows/Linux)或者Cmd+Shift+R(Mac),这个操作会彻底绕过浏览器缓存,直接从服务器拉取最新的样式文件。虽然你说清理过缓存,但硬刷新是更快捷的即时操作。一键清理Rails临时缓存:不用手动找tmp文件夹删除,直接在终端执行这条命令:
rails tmp:clear它会自动清理tmp目录下所有缓存文件(包括资产编译缓存),执行完刷新页面就能看到最新样式了,比手动删除高效太多。
重启Spring预加载器:Rails自带的Spring预加载工具有时候会“记住”旧的资产内容,导致修改不生效。可以先停止Spring:
spring stop然后重新启动服务器
rails s,这样就能加载最新的.scss编译结果了。检查开发环境Asset配置:打开
config/environments/development.rb,确认以下配置是否正确(Rails 5默认是这样,但以防被误修改):config.assets.debug = true config.assets.cache_store = :memory_storeconfig.assets.debug = true会让Rails单独编译每个资产文件,方便即时更新和调试;:memory_store把缓存存在内存里,重启服务器就会自动清空,比文件缓存更灵活。清理预编译的资产文件:如果之前不小心在开发环境执行过
rails assets:precompile,public/assets目录下的预编译文件会覆盖动态编译的内容。用这条命令彻底删除它们:rails assets:clobber之后开发环境就会回到动态编译模式,修改.scss后就能即时看到变化了。
这些方法都比手动删除tmp文件夹更省心,一般硬刷新或者执行rails tmp:clear就能解决大部分问题啦!
内容的提问来源于stack exchange,提问作者Ankit Ardeshana

