2012-03-09 70 views
9

我有一个Rails 3.1应用程序,由于某些原因,当我更改CSS时,更改不显示。我做了bundle exec rake assets:precompile,它有一次帮助,但现在我无论如何都被旧的CSS卡住了。Rails资产没有得到更新

回答

14

当你的资产,现在预编译,你需要用下面的

bundle exec RAILS_ENV=development rake rails_group=assets assets:clean 
+0

嗯没有帮助..? /Users/username/.rvm/rubies/ruby-1.9.3-p0/bin/ruby/Users/username/.rvm/gems/ruby-1.9.3-p0/bin/rake assets:clean:all RAILS_ENV = production RAILS_GROUPS = assets btw我提到的问题出现在开发中.. – Stpn 2012-03-09 21:43:50

+0

做了好几次,它帮助..奇怪,但谢谢! )) – Stpn 2012-03-09 22:02:20

+0

你有什么机会可以告诉如何关闭资源预编译进行开发,以便可以立即看到.css中所做的更改? – Stpn 2012-03-09 22:29:42

5

你可能想尝试耙资产清除它们:干净,然后耙资产:预编译

+1

做到了..没有任何变化(旧CSS正在服务)。 – Stpn 2012-03-09 21:51:24

+1

当我这样做时,我在错误中指出它正在执行rake资产中的任务:clean:all RAILS_ENV = production RAILS_GROUPS = assets'..once我将它切换到'development'它很好地工作! :) 谢谢。 – RGB 2013-07-15 19:48:54

3

对我来说只是删除从公共目录编译css/js文件。

原来,其他开发商把它放在那里,并没有让任何人知道。

+0

我也必须这样做,但它不是另一个开发者,它是预编译器。 – OneHoopyFrood 2016-01-04 18:35:34

5

对于我的生产环境,我必须结合上述几个步骤才能重新编译我的资产。

首先,我不得不这样做:

rake assets:clean 

确保我是在正确的环境

然后我需要删除您需要的public/assets目录的预编译创建(或只是文件固定,application-<hash>.css例如)

然后最后重新运行

rake assets:precompile 

,并重新启动我的Apache服务器(我用的乘客与Apache,而不是nginx的测试)

0

在任何情况下,未来的Google发现这个线程:我在Rails 4.2.8应用程序的测试环境有同样的问题。上述解决方案都不起作用。设置config.serve_static_files = falseconfig/environments/test.rb解决了它。

请注意,这是一个临时性修复,因为它会导致public文件夹中的所有文件不再提供服务(包括404.html,favicon.ico,robots.txt等)。

0

什么在轨工作对我来说,铬,MAC:

1 - 在终端:

rake assets:clean 

2 - 在崇高的文本或在搜索工具:

删除“公共>资产“文件夹

3 - 在终端发射本地主机服务器:

rails s 

4 - 在Chrome:

http://localhost:3000/ 

5 - 刷新铬清除缓存如果相关:

cmd + shift + R 

您现在应该能够更新你的CSS文件,并看到本地主机立即改变只是重装页面

请勿在终端中运行“rake资产:预编译”,因为它会在“公用”文件夹中重新创建文件夹“资产”,并且哟你将无法直接在你的本地主机上看到你的css文件的更新