gpt4 book ai didi

ruby-on-rails - Rails 引擎上的 Assets 过载 : requiring a secondary gem asset file fails

转载 作者:行者123 更新时间:2023-12-04 16:12:14 25 4
gpt4 key购买 nike

我正在尝试构建一个“管理后端”Rails 引擎。假设引擎有以下 Assets :

ENGINE/app/assets
├── javascripts
│   └── railsyard
│   ├── admin.js.coffee
│   ├── admin_customizations.js.coffee
...
admin.js.coffee需要 admin_customizations.js.coffee ,即准备被托管 Rails 应用程序覆盖的空文件。
[ENGINE/app/assets/javascripts/my_engine/admin.js.coffee]
#= require admin_customizations
# ...some code...

[ENGINE/app/assets/javascripts/my_engine/admin_customizations.js.coffee]
# Override this empty file to add custom JS behaviour!

一切都很好,直到我尝试要求一些来自次要 gem 的 Assets :
[APP/app/assets/javascripts/my_engine/admin_customizations.js.coffee]
#= require modernizr # this line gets ignored
alert "Foobar" # this line works

gem modernizr-rails是托管应用程序而不是引擎的依赖项。
请注意,如果我尝试要求 modernizr从不是某些引擎 Assets 文件的覆盖的 Assets 文件中,一切都会再次运行。

有没有办法解决这种情况?

最佳答案

我相信我已经完全按照您的描述做了,而没有遇到您所说的问题。

你确定没有别的事情发生?被忽略的 require 行没有多大意义—— sprockets 应该包含所需的文件,或者如果找不到它则引发。只是默默地什么都不做似乎不对。

您可能会触发 sprockets 或 rails Assets 管道使用它的错误 - 但更有可能的是,还有其他事情正在发生。

您确定您没有不小心在本地应用程序和/或引擎中提供了自己的空白“modernizr.js”文件,不小心覆盖了您想要从modernizr gem 中要求的文件?

链轮require行确实需要位于文件中任何代码之前的注释中,它们必须位于初始的前言注释 block 中。那会得到你吗?

或者可能不是你认为的其他东西。

我自己实际上并没有使用coffeescript,coffeescript有点奇怪吗?

关于ruby-on-rails - Rails 引擎上的 Assets 过载 : requiring a secondary gem asset file fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10115712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com