2015-07-09 64 views
2

我是Sinatra的新手,我試圖從ERB文件中引用樣式表。我已經嘗試了「Loading Stylesheets in Sinatra」中使用的方法,但樣式表仍未加載。引用樣式表

我的HTML在views/index.rb中,樣式表是views/styles/main.css。控制器邏輯位於app.rb.

當我將它加載到本地服務器上時,HTML本身顯示。

的文件夾結構是:

|-- app.rb 
|-- config.ru 
|-- Gemfile 
|-- Gemfile.lock 
|-- lib 
|-- spec 
| |-- spec_helper.rb 
|-- views 
| |-- index.erb 
| |-- styles 
| | |-- main.css 

app.rb是:

get '/' do 
    erb :index 
end 

index.erb沒有工作:

<link href="<%= url('views/styles/main.css') %>" rel="stylesheet" type="text/css" /> 
<link href="<%= url('/main.css') %>" rel="stylesheet" type="text/css" /> 

我的回購是:https://github.com/natstar93/Thermostat-day3

可以有人幫我弄清楚如何引用樣式表?

+0

你的意思是https://github.com/natstar93/Thermostat-Api? – matt

+0

是的,對不起,我會在帖子中更新 – Natstar

回答

2

Static assets like stylesheets should go in a public directory,而不是views這是爲每個請求產生不同輸出的模板。

您應該在views旁邊創建一個名爲public的目錄,並將styles目錄複製到該目錄中。隨後的URL樣式表將/styles/main.css

<link href="<%= url('/styles/main.css') %>" rel="stylesheet" type="text/css" /> 

您可能還需要啓用靜態資產服務(該文件表明,它是默認的模塊化應用程序禁用的,但實際上它似乎取決於是否public目錄存在 - 它不能傷害是明確的)。添加到您的應用類打開此:

enable :static