资产管道 预编译所有资产文件夹子目录

3

我喜欢保持我的资产高度组织化,但是,我在预编译时遇到了一个问题。它没有捕捉到子目录。这些是路径:

assets
>fonts
>images
>>backgrounds
>>home
>>icons

在我的生产环境中,我已经做了一切,但是在开发环境中一切正常,但是在生产环境中无法运行。

 config.assets.enabled = true
  config.assets.compile = true
  config.assets.precompile += ['*.js', '*.ico', '*.png', '*.jpg']
  config.assets.initialize_on_precompile = true

我目前正在应用程序.rb文件中运行以下函数:

   # Add All Asset Pipeline Sub Folders
    Dir.glob("#{Rails.root}/app/assets/images/**/").each do |path|
      config.assets.paths << path
    end

目前我一直在尝试做这件事情,但是运气不太好。希望能用几行代码动态地获取所有创建/更改的目录,以便我不必一个个添加.....

  # Add All Asset Pipeline Sub Folders
    Dir.glob("#{Rails.root}/app/assets/images/**/").each do |path|
      config.assets.paths << path
      config.assets.precompile += ['#{path}/*']
    end

想法?
更新解决方案:
我最终在我的生产rb中选择了以下内容:
  config.assets.precompile += ['*.js', '*.ico', '*.png', '*.jpg']
  config.assets.precompile += [ Dir["#{Rails.root}/app/assets/images/**/*"].reject {|fn| File.directory?(fn) } ]
1个回答

4
# Add All Asset Pipeline Sub Folders
Dir.glob("#{Rails.root}/app/assets/images/**/").each do |path|
   ..  # seems you include /assets/images sub directories, expand the path

Ruby命令:

Dir.glob("#{Rails.root}/app/assets/images/**/") 

返回位于

/images

目录中的文件夹。我假设您只推送图像资产到预编译器中。这有意义吗?请将其替换为:

 Dir.glob("#{Rails.root}/app/assets/**/") 

什么意思?你有例子吗?添加完整路径对于“config.assets.paths << path”有效,但预编译需要不同的方式? - Chris Hough
我最終在我的生產環境rb中採用了以下內容: config.assets.precompile + = ['* .js','* .ico','* .png','* .jpg'] config.assets.precompile + = [Dir [“#{Rails.root} / app / assets / images / ** / *”]。reject {| fn | File.directory?(fn)} ] - Chris Hough

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接