禁用资产管道/ Sprockets Rails 4.1

27

我无法找到在Rails 4.1中禁用Asset Pipeline的方法。我看到很多关于Rails 3.2的信息。

我想使用Grunt/GulpJs和bower来处理所有的资源,但我好像找不到相关内容,虽然找到了一些,但大部分都不适用于我或者已经损坏了。

有一个名为half-pipe gem的解决方案。然而,half-pipe依赖于Rails 4.0,而我使用的是Rails 4.1,如果可能的话,我找不到强制要求Gem在不同版本的Rails中安装的位置。

这个问题扩展成了比我预期的多几个问题。基本上我只需要知道如何禁用Asset Pipeline,或者如何集成GruntJS。

3个回答

43
您可以通过在config/application.rb中添加以下行来禁用asset pipeline:
config.assets.enabled = false

在创建新的Rails应用程序时,您还可以通过向其传递--skip-sprockets选项来关闭asset pipeline:

rails new myappname --skip-sprockets

那么就这么简单?那我只需要使用Grunt来构建我的文件并在我的布局部分中服务它们,然后就可以了吗? - Patrick Cauley
我从未使用过Grunt,因此无法对此发表评论,但是您可以像这样轻松禁用Sprockets。 - Kirti Thorat
1
基本上,Grunt只是将您的文件缩小/合并/编译等输出,类似于管道所做的,但具有其他好处和更大的灵活性,更不用说我理解它了。如果您不介意再回答一个问题。是否有任何方法安装需要不同版本的gem?我有一个需要4.0版本的gem,但我正在使用4.1版本,因为另一个gem正在使用它。 - Patrick Cauley
棘手。它是说它只能与4.0一起使用还是最低要求是4.0?如果它只能与4.0一起使用,那么你可以考虑降级。 - Kirti Thorat
我实际上更喜欢 GulpJs,因为它需要更少的配置,并且执行起来更快。我正在从完全不涉及资源方面的 Laravel 转向 Rails,我只想要一种简单的方法来使用自己的资源,而不让 Rails 触碰它们,Half-pipe 似乎是一个好选择,尽管现在我想知道它是否真的有必要。再次感谢! - Patrick Cauley
显示剩余4条评论

20
将以下内容添加到您的config/application.rb中:
config.assets.enabled = false

config.generators do |g|
  g.assets false
end

这将禁用资产管道,防止CLI生成器在生成脚手架时创建资产。

0
在Rails 4中,只需删除config/initializers/assets.rb即可解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接