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

至:

/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
4

1 回答 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

根据您需要配置前缀和 public_path 的应用程序类型。查看 Sinatra/Rack 支持部分https://github.com/AssetSync/asset_sync了解更多信息。希望能让你走上正确的道路。

于 2015-12-02T01:00:52.397 回答