2013-10-13 3 views
7

У меня проблема с моими ресурсами шрифта, которые обслуживаются без переваривания в производстве. Как только я разгребать активы: прекомпиляцию я получаю:Атрибут шрифта без дайджеста в Ruby on Rails 4

5futurebit-webfont-c133dbefd9e1ca208741ed53c7396062.eot 

Я пытался связать его с шрифтом лицом в СКСЕ с активами-URL, активы-путем, шрифт URL и шрифтом путем, но все из них в конечном итоге выводящий путь:

/assets/5futurebit-webfont.eot 

на данный момент я копирование активов из/приложение/активов/шрифты прямо/государственные/активы/но не чувствую, что это способ сделать это.

+1

Я считаю, что этот вопрос может иметь отношение http://stackoverflow.com/questions/10905905/using-fonts-with-rails-asset-pipeline –

ответ

0

Убедитесь, что точное имя файла с именем Удлинитель шрифта в вашем шрифта URL-адрес заявления вроде:

Correct:

Wrong
@font-face{ 
    font-family: 'Sawasdee'; 
    src: font-url('Sawasdee.ttf') format('truetype'); 
} 

:

@font-face{ 
    font-family: 'Sewasdee'; 
    src: font-url('Sewasdee') format('truetype'); 
} 

папку шрифтов Мой :

fonts 
|_ Sewasdee.ttf 
|_ Otherfont.ttf 
2

Я рассматривал аналогичную проблему, и в настоящее время я использую драгоценный камень не-глупых-дайджест-активов: https://github.com/alexspeller/non-stupid-digest-assets

Для получения дополнительной информации о том, как вы можете его использовать, см. Здесь. Correct use of non-stupid-digest-assets gem

Теперь, как говорится, ссылка предоставлена ​​Крисом (в частности, https://stackoverflow.com/a/17367264/291640) кажется, что он может сделать то же самое, как драгоценный камень без самого драгоценного камня. Я знаю, что мне нужно заглянуть в нее дальше.

+0

+1 для драгоценных камней, не тупые-Digest-активов. У Rails должна быть такая опция. –

0

Вот наше решение, основанное частично на том, что делает Sprocets. Он работает с Rails4. Он автоматически генерирует нестандартную версию для всех активов, которые были указаны в config.assets.precompile, после того, как была выполнена предварительная компиляция.

# lib/tasks/assets_nondigest.rake 
require 'fileutils' 

namespace "assets:precompile" do 
    desc "Create nondigest versions of defined assets" 
    task :nondigest => :environment do 
    sprocket_task = Sprockets::Rails::Task.new ::Rails.application 
    assets = ::Rails.application.config.assets.precompile 

    paths = sprocket_task.index.each_logical_path(assets).to_a + 
     assets.select { |asset| Pathname.new(asset).absolute? if asset.is_a?(String)} 

    paths.each do |path| 
     if asset = sprocket_task.index.find_asset(path) 
     copy_target = File.join(sprocket_task.output, asset.digest_path) 
     target = File.join(sprocket_task.output, asset.logical_path) 

     sprocket_task.logger.info "Writing #{target}" 
     asset.write_to target 
     asset.write_to "#{target}.gz" if asset.is_a?(Sprockets::BundledAsset) 
     end 
    end 
    end 
end 

Rake::Task['assets:precompile'].enhance do 
    Rake::Task['assets:precompile:nondigest'].invoke 
end 
Смежные вопросы