gpt4 book ai didi

ruby-on-rails - 未初始化的常量AssetSync

转载 作者:行者123 更新时间:2023-12-04 13:33:22 34 4
gpt4 key购买 nike

我使用gem asset_sync和aws来预编译我的 Assets 。耙 Assets :预编译效果很好。在我将应用程序推送到heroku之后,并且

heroku run rake db:migrate

我收到以下错误

"uninitialized constant AssetSync"



初始值设定项/asset_sync.rb
AssetSync.configure do |config|
config.fog_provider = 'AWS'
config.aws_access_key_id = "..."
config.aws_secret_access_key = "..."
config.fog_directory = Rails.env + "-..."
config.fog_region = 'eu-west-1'
end

config/production.rb
config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
config.assets.enabled = true

第一次运行run rake asset:precompile之后,我所有的应用程序/ Assets /图像都移到了public/assets。我已经从github上删除了它们,并将public/assets/*添加到.gitignore。可能是这个问题吗?

编辑:运行git push heroku master时,看起来它们已预编译
   Preparing app for Rails asset pipeline
Running: rake assets:precompile
AssetSync: using /tmp/build_2ltvklj0gaxjp/config/initializers/asset_sync.rb
AssetSync: using /tmp/build_2ltvklj0gaxjp/config/initializers/asset_sync.rb
AssetSync: Syncing.
Using: Directory Search of /tmp/build_2ltvklj0gaxjp/public/assets
Uploading: assets/application-7e17d9f0ed9cb7ea50b750e2bfc7e28c.css.gz
Uploading: assets/application-7e17d9f0ed9cb7ea50b750e2bfc7e28c.css
AssetSync: Done.
Asset precompilation completed (58.04s)

最佳答案

您的初始值设定项假定始终定义了AssetSync,但如果Gemfile看起来像这样,则情况并非如此:

group :assets do
gem 'asset_sync'
end
asset_sync文档建议将初始化程序包装在以下位置:
if defined?(AssetSync)
...
end

这是因为Heroku运行的 production没有 gem 的 assets组。 Heroku在运行推送时会预编译您的 Assets -如果启用了 asset_sync,它将在那时更新S3-因此,当您的应用程序稍后启动时,它不再需要这些gem。因此,您的 asset_sync初始化程序需要处理未加载gem的情况。

关于ruby-on-rails - 未初始化的常量AssetSync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13308795/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com