Javascript Rails 4:资产管道的常规CSS/JS开发工作流?

Javascript Rails 4:资产管道的常规CSS/JS开发工作流?,javascript,ruby-on-rails,asset-pipeline,Javascript,Ruby On Rails,Asset Pipeline,我有一个最初在Rails 3中开发的应用程序,我已将其更新为Rails 4。资产管道仍然让我困惑,尤其是,开发CSS和JS是相当痛苦的,因为无论我对mystyles.CSS或myscripts.JS所做的任何更改都会被编译到application.CSS和application.JS的旧版本覆盖,只要我发布rake-assets:precompile 我相信这并不是说每次调整mystyles.scss.erb文件(文本编辑器中为2秒)并重新加载浏览器(5秒)时,都需要运行rake assets:

我有一个最初在Rails 3中开发的应用程序,我已将其更新为Rails 4。资产管道仍然让我困惑,尤其是,开发CSS和JS是相当痛苦的,因为无论我对
mystyles.CSS
myscripts.JS
所做的任何更改都会被编译到
application.CSS
application.JS的旧版本覆盖,只要我发布
rake-assets:precompile

我相信这并不是说每次调整mystyles.scss.erb文件(文本编辑器中为2秒)并重新加载浏览器(5秒)时,都需要运行
rake assets:clean;rake资产:预编译
(可能需要2分钟?)

我想,从Rails3升级到Rails4的过程中,有一部分我错过了,或者做错了。我使用gem有几个原因,我希望这不是由这些原因造成的。

的答案是:

config/environments/development.rb
中,放置以下行:

config.assets.prefix = "/dev-assets"
前缀
更改使链轮在开发模式下使用不同的URL为资产提供服务,并将所有请求传递给链轮。在生产环境中,前缀仍然设置为
/assets
。如果没有此更改,应用程序将为开发中的
/assets
中的预编译资产提供服务,并且在再次编译资产之前,您不会看到任何本地更改

实际上,这将允许您在本地预编译,将这些文件放在工作树中,并在需要时将这些文件提交给源代码管理。开发模式将按预期工作

我在我的
development.rb
中注释掉了这一行。我将尝试重新启用它,看看它是否能解决问题…

的答案是:

config/environments/development.rb
中,放置以下行:

config.assets.prefix = "/dev-assets"
前缀
更改使链轮在开发模式下使用不同的URL为资产提供服务,并将所有请求传递给链轮。在生产环境中,前缀仍然设置为
/assets
。如果没有此更改,应用程序将为开发中的
/assets
中的预编译资产提供服务,并且在再次编译资产之前,您不会看到任何本地更改

实际上,这将允许您在本地预编译,将这些文件放在工作树中,并在需要时将这些文件提交给源代码管理。开发模式将按预期工作


我在我的
development.rb
中注释掉了这一行。我将尝试重新启用它,看看这是否能解决问题…

您是否已在application.rb、
config.assets.precompile+=%w(*.js*.css*.png*.jpg*.jpg)和
中添加了此选项,一旦执行此操作,您可以直接使用stylsheet和javascript帮助程序包含样式表和js文件。我认为这对Heroku不起作用?我在application.rb中得到了
config.assets.initialize\on\u precompile=false
,还有一条注释说“防止在预编译期间初始化应用程序并连接到数据库。Heroku要求这是false”。将您的行放入development.rb中是否可行?您可以在
application.rb
中添加上面给出的行,我也主持过一些项目,将
initialize\on\u precompile
设置为true,并且没有一次我必须执行
rake assets:clean
。您是否在application.rb、
config.assets.precompile+=%w(*.js*.css*.png*.jpg)中添加了这个选项
config.assets.initialize_on_precompile=true
,一旦这样做,就可以直接使用stylsheet和javascript帮助程序包含样式表和js文件。我认为这对Heroku不起作用?我在application.rb中得到了
config.assets.initialize\on\u precompile=false
,还有一条注释说“防止在预编译期间初始化应用程序并连接到数据库。Heroku要求这是false”。将您的行放入development.rb中是否可行?您可以在
application.rb
中添加上面给出的行,我也主持过一些项目,将
initialize\on\u precompile
设置为true,并且没有一次我必须执行
rake assets:clean