2011-11-15 247 views
6

我遇到資產管道問題,我已經有一個名爲assets的資源/控制器。所以我已將assets.prefix選項更改爲「/ externals」。如預期Rails 3.1.1 - 資產管道 - asset.prefix不適用於資源:資產

resources: assets 

然後所有作品:

config.assets.prefix = '/externals' 

這個簡單的劑量沒有工作,除非我刪除。

我不知道如何編寫測試來證明這一點,但我已經創建了一個應用程序來展示它。

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

如果你運行應用程序,並參觀'/產品的所有會的工作,然後去路線文件並更改變量create_bug爲true。

我們調查了https://github.com/rails/rails/blob/master/actionpack/lib/sprockets/helpers/rails_helper.rb,然後在asset_path方法中添加了一個調試器。

如果您只是javascript_include_tag方法中的調試器,則不調用此方法。並且運行方法(:asset_path).source_location,它告訴你它正在從默認路由中調用方法,而不是從鏈輪助手調用。

任何幫助將不勝感激......

+0

在這個問題上的鐵軌燈塔開了一張票。並上傳了一個解決問題的人,儘管可能不是最好的方式。 https://github.com/rails/rails/issues/3643#issuecomment-2775938 – nodrog

+0

你是對的,這是一個複雜的問題。我遇到了這個問題,因爲幫助者根本沒有使用config.assets.prefix選項(不管是否有資源:routes.rb中的資源),並且在修復時,我認爲一切都很好。唉,在config.rb中指定資產時,Sprockets幫助程序不使用配置設置。爲什麼? 我現在來看看你的工作。我試着用約束來解決它,並且將我的自定義前綴引導到Sprockets,但沒有運氣。 – Docunext

回答