从gem中执行的Sinatra应用程序服务资产

时间:2013-05-24 23:31:27

标签: ruby gem sinatra assets

我有一个Sinatra应用程序,我试图打包在一个宝石。到目前为止,我已按照Florian Hanke

的说明进行操作

我遇到的问题似乎无法确定......有些时候静态资产加载了 很好(例如,新安装的宝石,第一次运行服务器)但其他时候,例如重新加载索引页面后,它们将无法加载。

以下是相关的Sinatra配置/ app:

启动应用程序的可执行文件:

#!/usr/bin/env ruby
#

begin
  require 'rubygems'
  require 'sinatra/base'
  require 'haml'
  require 'coffee-script'
  require 'sass'
  require 'json'
  require 'thin'

  require 'application/sass_engine'
  require 'application/coffee_engine'
  require 'application/visualisation'

  #start the application
  require 'application/application'
end

这是我的主要Sinatra应用程序,其中包括运行服务器的调用:

class Visualiser < Sinatra::Base

    use SassEngine
    use CoffeeEngine

    set :static, true                             
    set :public_dir, File.expand_path('..', __FILE__) 

    set :views,  File.expand_path('../views', __FILE__) 
    set :haml, { :format => :html5 }                    

    get '/' do
      haml :'/index'
    end

end

Visualiser.run!

我的目录是按照这样的结构组织的:

bin/
   visualiser
lib/
   application/
      images/
      javascripts/
      stylesheets/
      views/
      application.rb
      ..

images目录包含一个文件ajax-loader.gif但是在运行Gem时(在初始加载之后,即在刷新时),服务器以404响应/images/ajax-loader.gif。

我的配置中是否缺少某些内容?

任何指针都会非常感激。

0 个答案:

没有答案