我是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 :(得分: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