2016-06-23 17 views
3

これはシンプルであるようですが、Cubaアプリのテンプレートをerbテンプレートにリンクする方法を理解できません。Rubyのキューバフレームワークでスタイルシートをリンクする

hello_world.rb

require "cuba" 
require "cuba/safe" 
require "cuba/render" 
require "erb" 

Cuba.use Rack::Session::Cookie, :secret => "__a_very_long_string__" 

Cuba.plugin Cuba::Safe 
Cuba.plugin Cuba::Render 

Cuba.define do 
    on root do 
    res.write view("home") 
    end 
end 

ビュー/ layout.erb

<!DOCTYPE html> 
<html lang="en"> 

    <head> 
    <link href="styles/basic.css" rel="stylesheet" type="text/css" /> 
    </head> 

    <body> 
    <div> 
     <h1>Hello</h1> 
    </div> 
    </body 
</html> 

config.ru

require "./hello_world" 
run Cuba 

スタイル/ basic.css

h1 { 
    font-size: 128px; 
} 

div { 
    padding: 50px; 
    margin: 100px; 
} 

私はpublicと同様に<link href="<%= url('styles/basic.css') %>" rel="stylesheet" type="text/css" />を使用して、指定されたが、何も働いていないディレクトリに私のcssを置くようないくつかのSinatra標準を使用して試してみました。

答えて

2

キューバは静的資産を提供しません。あなたの意見では、このフォルダを参照してください、そして、

# hellow_world.rb 
Cuba.use Rack::Static, 
    root: "public", 
    urls: ["/javascripts", "/css", "/images"] 

:あなたはこのためRack::Staticを使用することができます。

# layout.erb 
<link href="/public/css/basic.css" rel="stylesheet" type="text/css" /> 
+0

私は 'Cuba.use Rack :: Static、:urls => ["を使用したときに、/css "]'と 'public'ディレクトリを使用していません。 'Rack :: Static'が解決策であったため、正しい答えが得られました。 – jdesilvio