On Monday 17 May 2010, Michael Schuerig wrote:
> Ein wirklich schöne Lösung ist mir noch nicht eingefallen. Im
> Augenblick  ist meine Idee, beim Deployment in den Stylesheets alle
> URLs durch solche mit absoluten Pfaden auszutauschen und dabei einen
> evtl. Präfix für das Unterverzeichnis zu berücksichtigen.

Für die relativen Pfade in Stylesheets habe ich einen Hackaround 
geschrieben, der diese in absolute Pfade umwandelt:

# config/initializers/absolute_urls_in_stylesheets.rb

ActionView::Helpers::AssetTagHelper.module_eval do
  private
    def join_asset_file_contents(paths)
      paths.collect { |path|
        asset_path = asset_file_path(path)
        returning File.read(asset_path) do |contents|
          if File.extname(asset_path) == '.css'
            prefix = File.dirname(path).
              sub(/^#{Rails.public_path}/, '/')
            contents.gsub!(%r{url\((.+?)\)}) {
              p = $1 # $1 is reset by #start_with?
              p.start_with?('/') ? $& : "url(#{File.join(prefix, p)})"
            }
          end
        end
      }.join("\n\n")
    end
end


Beispiel

In /public/stylesheets/foo/foo.css steht

background: url(images/bar.png);

Dann wird dies beim Schreiben der Stylesheet-Cache-Datei geändert in

background: url(/stylesheets/foo/images/bar.png);


Michael

-- 
Michael Schuerig
mailto:mich...@schuerig.de
http://www.schuerig.de/michael/
_______________________________________________
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug

Antwort per Email an