即使我重新启动开发服务器,也没有重新生成我的js.erb文件。有没有办法让我每次重新启动服务器时强制资产管道重新生成所有的javascript资产?
如果我更改了实际的.js.erb源文件,那么它会重新编译,但代码从数据库中提取,读取可能在服务器重新启动之间更改的种子数据。
答案 0 :(得分:10)
在这里打电话,但是到处都遇到了这个问题,真的被它惹恼了,挖了一下。这是我的解决方案:
重新启动服务器时,rm -rf tmp/cache/*
这将吹走SCSS和其他缓存资产,并强制重新编译。
如果您愿意或正在使用Rake重新启动服务器,则可以运行rake assets:clean
。
显然,这样做会减慢服务器的重启速度,但是为了消除这个主要的痛点可能是值得的......
答案 1 :(得分:1)
考虑在服务器启动之前在资产管道中执行的任何ruby,因为这实际上是在资产预编译步骤的生产中发生的事情(并且在开发过程中,如果文件发生变化,它将刷新,因为你已经描述)。在这种情况下,您需要将该代码重构为控制器以及app / views目录(html.erb / js.erb)中的某些内容,以便在每次请求时运行代码。