我发现了类似的问题,并按照答案,但我没有运气。 我正在尝试使用Sinatra为我的一些页面提供CSS文件,但它并不适用于所有页面。
我的公共文件夹与我的“app.rb”处于同一级别。公用文件夹结构如下:
public
-css
-images
-js
在我的app.rb中,我只有一行如下:
set :public_folder, "public"
在我的布局中,我使用:
href="/public/css/main.css"
它适用于某些页面,例如我的索引和关于页面,但是一旦我深入了解我的观点,它就无效了。如果我手动设置路由,我可以让它工作,但我不想最后为我添加的所有未来视图执行此操作。这就是我要做的工作:
change to href="/css/main.css"
get "/css/main.css" do
redirect "/main.css"
end
get "/posts/css/main.css" do
redirect "/css/main.css"
end
所有视图使用相同的布局和css文件的相同URL,当我深入视图时,文件夹被添加到css url的开头,这就是我为它添加路由的原因。有没有解决的办法?还是新来的:)
感谢。
答案 0 :(得分:3)
首先,我认为你的布局文件中不需要'public'。
href="/css/main.css"
其次,我建议使用scss / sass进行样式设计。您只需将.scss文件保存在primary / views目录中即可。
app.rb
- views
- index.haml/html
- style.scss
在您的.rb应用文件中:
get '/style.css' do
scss :style
end
然后,在您看来:
href="/style.css"
希望有所帮助!