2013-09-04 29 views
5

Rails'te this commit'dan sonra, 3. taraf varlıklarının app/assets klasörüne koyulması veya config.precompile tüm bu tür öğeleri listelemesi önerilir. Ayrıca CSS, bir font tipini ve bir görüntü sprite var bir jQuery eklentisi satıcıya gerekiyorsa bu iş parçacığı ÖrneğinRaylar 4 - Satıcı varlıkları nereye gidiyor?

üzerinde bir kullanım durumunda aktaran

, ben .js eklersiniz ve .css, satıcı/varlıkları/javascripts ve vendor/asset/stylesheets. Ayrıca, satıcı/varlık/resim ve satıcı/varlıkları/yazı tiplerindeki sprite ve fontları da satıcısından alırdım. Tüm satıcının/öğelerin eklenmesi yolunun aşırı yüklendiği anlaşılıyor, ancak her bir öğeyi tek tek elle belirterek sıkıcı görünüyor (tasarımla ilgili olsa da). app/assets içindeki

ekleme üçüncü taraf öğeleri küresel varlıkları klasörünün sorunu gibi bir Rails 2 yol açacaktır.

Bir şey mi eksik? Rails 4 üncü parti varlıklarını organize etmenin yolu.

cevap

1

Üçüncü taraflar, el ile açıkça dahil edilmelidir. Bunun nedeni, bu kitaplıkların kaynak kodu, benioku dosyaları vb. Gibi birçok isteğe bağlı parçaya sahip olmasıdır. Resim veya yazı tipi gibi başka şeylere ihtiyacınız varsa, bu dosyaları ortak klasöre ekleyebilir veya bunu yapabilirsiniz:

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 

ortamı/production.rb

config.serve_static_assets = true 

Sonra bundle exec rake assets:precompile RAILS_ENV=production çalıştırın.

+0

Genellikle, üçüncü taraf bir JS lib eklediğinizde, sadece 'release' /' dist'version/folder 'ı eklersiniz, değil mi? Yine de bunun kaynak kodunu kopyalamak istemezsiniz. Ve ön derleme sadece js, css'yi alır. –

+0

Doğru. Ancak, Rails 4'te (CSS, bir font yüzü ve bir görüntü grafiği, vb.) Lib ve satıcıda artık öntanımlı olarak öntanımlı değildir. – hawk

+0

İstenmeyen dosyaların önbelleğe alınmasını önlemek için bu öğeleri kendi uygulamanıza/varlıklarınıza eklemelisiniz. – hawk