2016-06-23 2 views
3

Кажется, что это должно быть просто, но я не могу понять, как получить ссылку stylesheet в шаблон erb в приложении Cuba.Ссылка на таблицу стилей в ракурсе Ruby's Cuba

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; 
} 

Я пытался использовать некоторые Sinatra стандарты, как положить мой css в папку с именем public, а также не используя <link href="<%= url('styles/basic.css') %>" rel="stylesheet" type="text/css" /> но ничего работало.

ответ

2

Куба не обслуживает статические активы. Вы можете использовать Rack::Static для этого:

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

Затем обратитесь к этим папкам в своих взглядах.

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

Спасибо ... по какой-то причине, что точный код не работает (возможно, ошибки пользователя) ... он закончил работать, когда я использовал 'Cuba.use Rack :: Static,: URLS => [»/css "]' и не использовать 'public'. Все еще дал вам правильный ответ, поскольку решение «Rack :: Static» было решением. – jdesilvio

Смежные вопросы