Ruby on rails 在heroku上找不到文件
我正在rails应用程序中使用geoip gem,我需要访问geoip.dat文件以获取ip数据Ruby on rails 在heroku上找不到文件,ruby-on-rails,heroku,Ruby On Rails,Heroku,我正在rails应用程序中使用geoip gem,我需要访问geoip.dat文件以获取ip数据 GeoIP.new("geoip.dat") 在我的本地环境中,我可以从任何地方访问此文件,但当我将其放在Heroku上时,我就是无法使其工作。我总是得到文件不存在的错误。我试着把它放在根目录下,/public,/lib/assets 我做错了什么 谢谢。如果文件在您的公共目录中,您可以在Heroku上访问它。确保文件位于public/geoip.dat中,并确保它已提交并推送到Heroku。如果
GeoIP.new("geoip.dat")
在我的本地环境中,我可以从任何地方访问此文件,但当我将其放在Heroku上时,我就是无法使其工作。我总是得到文件不存在的错误。我试着把它放在根目录下,/public,/lib/assets
我做错了什么
谢谢。如果文件在您的公共目录中,您可以在Heroku上访问它。确保文件位于
public/geoip.dat
中,并确保它已提交并推送到Heroku。如果您在Mac上进行本地开发,并且正在使用Heroku,请确保文件名的大小写准确无误。这个案子在Mac上会被忽略,但在Heroku上会很重要
您应该能够使用以下内容加载文件:
GeoIP.new(Rails.root + 'public/geoip.dat')
您可以在heroku上进行测试:
> heroku run console
Running `console` attached to terminal... up, run.3472
Loading production environment (Rails 4.0.0)
irb> File.exists?(Rails.root + 'public/geoip.dat')
=> true
irb> GeoIP.new(Rails.root + 'public/geoip.dat')
=> #<GeoIP:0x007f05a0215230 @mutex=#<Mutex:0x007f05a0215258>, @flags=0, @database_type=1, @record_length=3, @file=#<File:/app/public/geoip.dat>, @database_segments=[16776960]>
heroku运行控制台
正在运行连接到终端的“控制台”。。。起来,跑
加载生产环境(Rails 4.0.0)
irb>File.exists?(Rails.root+'public/geoip.dat')
=>正确
irb>GeoIP.new(Rails.root+'public/GeoIP.dat')
=> #
您是否添加了git--all?我很确定该文件已推送到Heroku上。我还通过Heroku上的控制台进行了检查,文件就在那里。它工作了…它尝试了各种方法来获取根,但没有rails.root,它工作了。谢谢