禁用 Asset Pipeline/Sprockets Rails 4.1

Posted

技术标签:

【中文标题】禁用 Asset Pipeline/Sprockets Rails 4.1【英文标题】:Disable Asset Pipeline/Sprockets Rails 4.1 【发布时间】:2014-04-29 14:43:12 【问题描述】:

我似乎找不到在 Rails 4.1 中禁用资产管道的方法。我看到了很多关于 Rails 3.2 的信息。

我想使用 Grunt/GulpJs 和 bower 来处理我的所有资产,但我似乎找不到任何东西。相反,我找到了一个不错的数量,但其中大部分不适用于我或已损坏。

half-pipe gem。然而,half-pipe 依赖于 Rails 4.0,而我使用的是 Rails 4.1,如果可能的话,我找不到强制 Gem 安装在不同版本的 Rails 中的位置。

这个问题扩展为比我预期的更多的问题。基本上我只需要知道如何禁用 Asset Pipeline,除非如何集成 GruntJS。

【问题讨论】:

【参考方案1】:

在 Rails 4 中,只需删除 config/initializers/assets.rb 即可。

【讨论】:

【参考方案2】:

将此添加到您的config/application.rb

config.assets.enabled = false

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

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

【讨论】:

【参考方案3】:

您可以在config/application.rb 中添加以下行来禁用资产管道:

config.assets.enabled = false

您还可以在创建新的 Rails 应用程序时关闭资产管道,方法是将 --skip-sprockets 选项传递给它:

rails new myappname --skip-sprockets

【讨论】:

就这么简单?然后我可以只使用 grunt 来构建我的文件并在我的布局部分中提供这些文件并且做得很好? 我从来没有用过 grunt,所以不能评论那部分,但是你可以像那样简单地禁用 sprockets。 基本上 Grunt 只是输出您的文件缩小/连接/编译等,类似于管道的功能,但具有其他好处和更大的灵活性,更不用说我理解了。如果你不介意再回答一个问题。无论如何要安装具有不同版本要求的gem?我有一个需要 4.0 的 gem,但我使用的是 4.1,因为另一个 gem 使用它。 棘手。它是说它只适用于 4.0 还是最低要求?如果它说只有 4.0,那么你可以考虑降级。 我不确定是否诚实..我分叉了 gem 并删除了 4.0 要求。它是 Half-pipe,根据文档,它只不过是使用 Grunt 的生成器,所以理论上它不应该破坏任何东西或完全依赖 Rails。在解释它的视频中,唯一特定于 Rails 的功能是注释掉 Sprockets。非常感谢您的帮助。

以上是关于禁用 Asset Pipeline/Sprockets Rails 4.1的主要内容,如果未能解决你的问题,请参考以下文章

Unity asset序列化

Laravel 4 URL::asset() 和asset() 之间的区别

Android 读取asset文件

照片库图像 URL “assets-library://asset/asset.JPG?id=1000000007&ext=JPG”为 nil

在 laravel 中使用前缀后,asset('assets') 返回错误的目录

从Gallery Asset中检索AVPlayerItem