我刚刚使用本教程向 Heroku 加载了一个静态应用程序,一切正常,除了我的图像没有显示。当同一个站点作为纯静态站点(不是通过 Heroku)托管在我自己的服务器上时,所有资产都可以毫无问题地加载。
目前,我的存储库中有一个 Gemfile、Gemfile.lock、app.rb、config.ru 和 public(静态站点目录),我通过它们加载到 Herokugit push heroku master
以推送到 Heroku。
我的图像在 public/img 中,甚至直接从 html 引用的资产也没有显示出来。当我在 Chrome 中使用 firebug lite 检查资产目录时,似乎图像文件在那里,但它们似乎没有图像数据(据我所知)。
我没有更多的 ruby/rails 文件。我应该在某个地方有一个 production.rb 文件吗?我错过了什么吗?
目前,我在 Heroku 上的设置是免费包。我是否需要升级到付费套餐才能查看我的资产(我只有 2MB 的资产)?我尝试在“public”目录中创建一个“assets”目录并将 img 目录放在那里,但仍然没有运气。
这是我的 config.ru
use Rack::Static,
:urls => ["/img", "/js", "/css"],
:root => "public"
run lambda { |env|
[
200,
{
'Content-Type' => 'text/html',
'Cache-Control' => 'public, max-age=86400'
},
File.open('public/index.html', File::RDONLY)
]
}