【问题标题】:Rails 3.1.1 - Asset Pipeline - asset.prefix not working with resource :assetsRails 3.1.1 - 资产管道 - assets.prefix 不适用于资源:assets
【发布时间】:2011-11-15 12:51:37
【问题描述】:

我遇到了资产管道问题,我已经有一个名为 assets 的资源/控制器。所以我将 assets.prefix 选项更改为“/externals”。

config.assets.prefix = '/externals'

除非我删除,否则这个简单的剂量不起作用:

resources: assets

然后一切都按预期工作。

我不确定如何编写测试来证明这一点,但我创建了一个应用程序来展示它。

https://github.com/nodrog/asset-pipeline-issue

如果您运行应用程序,访问“/products”一切正常,则转到路由文件并将变量 create_bug 更改为 true。

我们查看了https://github.com/rails/rails/blob/master/actionpack/lib/sprockets/helpers/rails_helper.rb,然后在asset_path 方法中添加了一个调试器。

如果您只是 javascript_include_tag 方法中的调试器,则不会调用此方法。然后运行method(:asset_path).source_location,它会告诉你它是从默认路由调用该方法,而不是从sprockets helper。

任何帮助将不胜感激...

【问题讨论】:

  • 就这个问题在 rails lighthouse 开了一张票。并上传了一个解决问题的人,尽管可能不是最好的方式。 github.com/rails/rails/issues/3643#issuecomment-2775938
  • 你说得对,这是一个复杂的问题。我遇到了它,因为助手根本没有使用 config.assets.prefix 选项(无论 routes.rb 中是否有资源 :assets),当它被修复时,我认为一切都很好。唉,当资产在 config.rb 中指定时,Sprockets 助手不使用配置设置。为什么?我现在看看你的工作。我已经尝试使用约束来解决它,以及将我的自定义前缀指向 Sprockets,但没有运气。

标签: ruby-on-rails asset-pipeline


【解决方案1】:

更新:

我向 Rails 人员报告了这个问题,他们修复了它。修复程序现在在 master 分支中。

https://github.com/rails/rails/issues/3643#issuecomment-2775938

【讨论】:

    猜你喜欢
    • 2012-02-21
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    相关资源
    最近更新 更多