我一直在使用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
要:
/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 :(得分: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
根据您需要配置前缀和public_path的应用程序类型。有关更多信息,请查看Sinatra / Rack支持部分https://github.com/AssetSync/asset_sync。希望让你走上正确的道路。