簡體   English   中英

僅為圖像禁用Rails 3.1資產管道?

[英]Disable Rails 3.1 asset pipeline for images only?

我正在將Rails 3應用程序升級到3.2並設置資產管道。 這對於css / js來說很棒,但是我並沒有真正看到將它用於圖像的重點,不幸的是我有大量的參考/images/*.png之類的css等。

有沒有辦法為圖像禁用資產管道,所以image_tag("x.png")將返回<img src="/images/x.png">而不是<img src="/assets/x.png"> 謝謝!

你可以修補ActionView :: Base,在rails console中試試這個:

helper.image_path "foo" #=> "/assets/foo"

module OldImagePath
  def image_path(source)
    asset_paths.compute_public_path(source, 'images')
  end
  alias_method :path_to_image, :image_path
end
ActionView::Base.send :include, OldImagePath

helper.image_path "foo" #=> "/images/foo"

例如,您可以將其放在初始化程序中。 默認情況下,ActionView :: Base包含ActionView :: Helpers :: AssetTagHelper和Sprockets :: Helpers :: RailsHelper,它們都定義了image_path,但后者優先。 我包含了我自己的模塊,它優先於所有模塊(里面的代碼來自ActionView :: Helpers :: AssetTagHelper)。

雖然,對圖像使用資產管道也是有意義的。 它們在文件名中獲取哈希值,以便它們可以永久緩存在客戶端,而無需詢問服務器文件是否已更改。

看看這個寶石: https//github.com/spohlenz/digestion ,它應該做你需要的:)。

否則,您可以將不希望包含在資產管道中的資產從app / assets移回公共(例如公共/圖像)。 一切都應該像你期望的那樣工作而不需要寶石。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM