2015-07-09 29 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