【发布时间】:2012-04-12 00:06:58
【问题描述】:
我正在尝试构建一个“管理后端”Rails 引擎。假设引擎有以下资产:
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!
一切都很好,直到我尝试要求一些来自二级宝石的资产:
[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,一切都会再次运行。
有没有办法解决这种情况?
【问题讨论】:
-
覆盖文件有什么好处吗?我的意思是,开发人员可以添加自己的 js。
标签: ruby-on-rails asset-pipeline rails-engines