2015-12-01 3 views
0

Я использовал asset_sync, чтобы перенести наши статические активы на Amazon S3, и я заметил, что когда я перекомпилирую свои активы (используя foreman run rake assets:precompile), базовые каталоги будут сплющены. Они идут от:Рельсы конвейерных линий для каталогов потоков

/app 
    /assets/ 
    /images 
     image.png 
     image2.png 
     /subdir 
     image3.png 
    /javascripts 
     script.js 
    /stylesheets 
     style.css 

To:

/public 
    /assets/ 
    image.png 
    image2.png 
    /subdir 
     image3.png 
    script.js 
    style.css 

Он держит поддиректорий, но базовые каталоги удаляются по какой-то причине.

Можно ли отключить это? Я хотел бы сохранить свои активы S3 в каталогах. Я мог бы, вероятно, решить это, добавив дополнительные каталоги, чтобы структура была следующей.

/app 
    /assets/ 
    /images 
     /images 
     image.png 
     image2.png 
     /subdir 
      image3.png 
    /javascripts 
     /javascripts 
     script.js 
    /stylesheets 
     /stylesheets 
     style.css 

Но это просто похоже на грязное решение.

Я конфигурированию свои активы прекомпиляции с:

Rails.application.config.assets.precompile = [] 
Rails.application.config.assets.precompile += ['application.js'] 
Rails.application.config.assets.precompile += Loader.js_files 
Rails.application.config.assets.precompile += ['*.css', '*.png', '*.svg', '*.jpg'] 

Моя среда имеет следующие переменные: "

ASSET_SYNC_GZIP_COMPRESSION=true 
ASSET_SYNC_MANIFEST=true 
ASSET_SYNC_EXISTING_REMOTE_FILES=keep 
AWS_ACCESS_KEY_ID=xxxxxxx 
AWS_SECRET_ACCESS_KEY=xxxxxxx 
FOG_DIRECTORY=aws-example 
FOG_PREFIX=/assets/ 
FOG_PROVIDER=AWS 
FOG_REGION=us-west-1 

ответ

0

вы сконфигурированные asset_sync правильно для приложения, которое вы создаете

?
AssetSync.configure do |config| 
    config.fog_provider = 'AWS' 
    config.fog_directory = ENV['FOG_DIRECTORY'] 
    config.aws_access_key_id = ENV['AWS_ACCESS_KEY_ID'] 
    config.aws_secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] 
    config.prefix = 'assets' 
    config.public_path = Pathname('./public') 
end 

В зависимости от типа приложения вам необходимо настроить t он префикс и public_path. Ознакомьтесь с разделом поддержки Sinatra/Rack https://github.com/AssetSync/asset_sync для получения дополнительной информации. Надежда ставит вас на правильный путь.

Смежные вопросы