ruby-on-rails – 使用asset_sync(S3CDN)将.资产放入.slugignore进行Heroku部署

ruby-on-rails – 使用asset_sync(S3CDN)将.资产放入.slugignore进行Heroku部署,第1张

概述我不确定是否存在这样做的方法,但是对于asset_sync,我们的想法是资产是从S3或某些CDN(例如cloudfront)提供的,因此不需要成为应用程序slug的一部分.是否有可能在Heroku上的.slugignore中拥有/ assets并且仍然可以获得资产:precompile和asset_sync可以工作吗? 如果我只将/ assets放在.slugignore中,它们不会使用摘要编译, 我不确定是否存在这样做的方法,但是对于asset_sync,我们的想法是资产是从S3或某些CDN(例如cloudfront)提供的,因此不需要成为应用程序slug的一部分.是否有可能在Heroku上的.slugignore中拥有/ assets并且仍然可以获得资产:precompile和asset_sync可以工作吗?
如果我只将/ assets放在.slugignore中,它们不会使用摘要编译,并且对资产的引用没有指纹,因此不起作用.解决方法 编辑.slugignore不能在那里工作,因为排除文件在Heroku上的所有编译步骤之前开始.但我们需要编译所有这些,将它们移动到S3,然后才删除它们.

我在我的Rakefile(小脚本)中写了一些代码,它通过扩展过滤器删除所有不可用的文件:

Rake::Task["assets:precompile"].enhance do    puts 'my assets:precompile hook is started!'    dir_path = "#{Dir.pwd}/public/sites-fromfuture-net/"    records = Dir.glob("#{dir_path}**/*")    records.each do |f|        if f =~ /.*.png$/ or                f =~ /.*.jpg$/ or                f =~ /.*.eot$/ or                f =~ /.*.svg$/ or                f =~ /.*.woff$/ or                f =~ /.*.ttf$/ or                f =~ /.*.otf$/ or                f =~ /.*.CSS$/ or                f =~ /.*.Js$/ or                f =~ /.*.wav$/ then            file.delete(f)        end    end    # puts Dir.glob("#{dir_path}**/*")    puts 'my assets:precompile hook is finished!'end

还有一件事:我使用了一个heroku-deflater gem,它会压缩所有CSS和Js资产,所以我会删除脚本中的所有.CSS和.Js文件但不删除.CSS.gz和.Js.gz文件,因为铁路资产检查.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 使用asset_sync(S3 / CDN)将./资产放入.slugignore进行Heroku部署全部内容,希望文章能够帮你解决ruby-on-rails – 使用asset_sync(S3 / CDN)将./资产放入.slugignore进行Heroku部署所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1267819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存