上传到Heroku时,Sinatra公共资产不可用

时间:2013-11-03 19:39:36

标签: ruby heroku sinatra

我刚刚开始研究一个简单的Sinatra应用程序并将其上传到Heroku。公用文件夹中的所有文件似乎都不可用,但它在本地工作正常。

有没有明显的理由可能会发生这种情况?

现在代码非常简单:

require 'rubygems'
require 'sinatra'
require 'bundler/setup'
require 'haml'
require 'rdiscount'

set :static, true
set :public_folder, "#{File.dirname(__FILE__)}/public"

get '/' do
  haml :landing
end

__END__

@@ layout
%html
  %head
    %meta{charset: "utf-8"}/
    %meta{content: "width=device-width, initial-scale=1.0", name: "viewport"}/
    %meta{content: "", name: "description"}/
    %meta{content: "", name: "author"}/
    %title TIL
    %link{href: "http://yui.yahooapis.com/pure/0.3.0/pure-min.css", rel: "stylesheet"}
    %link{rel: "stylesheet", href: "/styles.css"}
  %body
  = yield

@@landing
%section.hero
  .container
    .pure-g-r
      .pure-u-1
        .logo
          ...
.container
  %hr/
  .pure-g-r
    .pure-u-2-3
      .padding-box
        :markdown
          ...
    .pure-u-1-3
      .padding-box
        ..
  %hr/
  .pure-g-r
    .pure-u-1
      .padding-box
        :markdown
          ...
  %hr/
  .pure-g-r
    .pure-u-1
      .padding-box
        %h2 ...
    .pure-u-1-3
      .padding-box
        %img.img-rounded{src: "GD-thumbnail.png"}/
        :markdown
          ...
    .pure-u-1-3
      .padding-box
        %img.img-rounded{src: "AL-thumbnail.png"}/
        :markdown
          ...
    .pure-u-1-3
      .padding-box
        %img.img-rounded{src: "BP-thumbnail.png"}/
        :markdown
          ...
  %hr/
  %footer
    .row
      .col-lg-12
        %p

本地文件结构是:

TIL (folder)
- app.rb
- Gemfile
- Procfile
- public (folder)
  - AL-thumbnail.png
  - BP-thumbnail.png
  - GD-thumbnail.png
  - logo.png
  - styles.css

1 个答案:

答案 0 :(得分:1)

查看您的Heroku日志文件:

  

heroku日志

如果你能看到像

这样的东西
  

Rack :: Flash :: SessionUnavailable - Rack :: Flash依赖于会话中间件。:

然后添加

  

gem“rack-flash-session”

给你Gemfile。

还要在主文件中添加'require'rack / flash / test''。

这将迫使heroku加载所需的middelware。

相关问题