2013-09-04 9 views
5

Nach this commit in Rails wird vorgeschlagen, dass Drittanbieter-Assets entweder in den Ordner app/assets gelegt werden oder config.precompile alle diese Assets auflisten sollten.Schienen 4 - Wohin gehen die Vermögenswerte der Lieferanten?

einen Anwendungsfall auf diesem Thread Zitiert

Zum Beispiel, wenn ich ein jQuery-Plugin Hersteller müssen die auch CSS hat, eine Schriftart, und ein Bild Sprite, würde ich die Js hinzufügen und .css zu Vendor/Assets/Javascripts und Vendor/Assets/Stylesheets. Ich würde auch Anbieter die Sprites und Schriftarten in Vendor/Assets/Bilder und Vendor/Assets/Fonts, jeweils. Hinzufügen des gesamten Kreditors/Assets Pfad scheint Overkill, aber manuell jedes Asset einzeln angeben scheint langweilig (obwohl das könnte von Entwurf sein).

Hinzufügen von Dritten Vermögenswerte innerhalb app/assets wird zu einer Rails 2 wie Problem eines globalen Assets Ordner führen.

Fehle ich etwas? Whats the Rails 4 Möglichkeit, Drittanbieter-Assets zu organisieren.

Antwort

1

Dritte sollten ausdrücklich von Hand einbezogen werden. Dies liegt daran, dass diese Bibliotheken viele optionale Teile wie Quellcode, Readme-Dateien usw. haben. Wenn Sie andere Dinge wie Bilder oder Schriftarten benötigen, können Sie diese Dateien im Öffentlichen Ordner hinzufügen oder tun:

config/application.rb

config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif, 
"fontawesome-webfont.ttf", 
"fontawesome-webfont.eot", 
"fontawesome-webfont.svg", 
"fontawesome-webfont.woff") 

config.assets.precompile << Proc.new do |path| 
    if path =~ /\.(css|js)\z/ 
    full_path = Rails.application.assets.resolve(path).to_path 
    app_assets_path = Rails.root.join('app', 'assets').to_path 
    if full_path.starts_with? app_assets_path 
     puts "including asset: " + full_path 
     true 
    else 
     puts "excluding asset: " + full_path 
     false 
    end 
    else 
    false 
    end 
end 

Umwelt/production.rb

config.serve_static_assets = true 

Dann bundle exec rake assets:precompile RAILS_ENV=production laufen.

+0

Normalerweise, wenn Sie eine JS-Lib von Drittanbietern hinzufügen, fügen Sie nur den Ordner 'release' /' dist'version/hinzu, richtig? Sie wollen den Quellcode sowieso nicht kopieren. Und die Vorkompilierung nimmt sowieso nur js, css auf. –

+0

Wahr. In Rails 4 werden Assets (CSS, ein Schriftbild und ein Bild-Sprite usw.) in lib und Vendor standardmäßig nicht mehr vorkompiliert. – hawk

+0

Sie sollten diese Assets in Ihre eigene App/Assets einfügen, um zu verhindern, dass unerwünschte Dateien vorkompiliert werden. – hawk

Verwandte Themen