首页 文章

无法在Sinatra中提供静态文件

提问于
浏览
2

我找到了类似的问题,并按照答案,但我没有运气 . 我正在尝试使用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的开头,这就是为我添加路由的原因 . 有没有解决的办法?还是新来的:)

谢谢 .

1 回答

  • 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"
    

    希望有所帮助!

相关问题