引用样式表

时间:2015-07-09 21:28:34

标签: css ruby sinatra

我是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

有人可以帮我解决如何引用样式表吗?

1 个答案:

答案 0 :(得分:2)

Static assets like stylesheets should go in a public directory,而非module myModule open System.IO; let CreateFileAsync (filePath: string, bytes : byte[]) = use sourceStream = File.Open(filePath, FileMode.OpenOrCreate) |> sourceStream.Seek(0, SeekOrigin.End); ,用于为每个请求生成不同输出的模板。

您应该在views旁边创建一个名为public的目录,并将views目录复制到该目录中。然后样式表的网址为styles

/styles/main.css

您可能还需要启用静态资产服务(文档建议在模块化应用程序中默认禁用它,但实际上它似乎取决于 <link href="<%= url('/styles/main.css') %>" rel="stylesheet" type="text/css" /> 目录是否存在 - 它不会受到伤害显式)。将其添加到您的应用类以启用此功能:

public
相关问题