访问 Sinatra Rackup 中的 public 文件夹

Accessing public folder in Sinatra Rackup

我有一个使用 rackup 和 Sinatra::Base(模块化应用程序)的小型 Sinatra 应用程序。我的视图文件夹可以访问,但是我的 public 文件夹具有样式表和 java 脚本根本无法访问,我 运行 我的应用程序使用命令 rerun rackup。我已经尝试了很多关于堆栈溢出的东西,但没有什么能解决问题

controllers/applicatoin_controller.rb

class ApplicationController < Sinatra::Base
    set :views, Proc.new    {File.join(root, "../views/")}
    set :public_folder , Proc.new {File.join(root,"../public")}
    enable :static
end 

layout.erb

<link rel="stylesheets" href="main.css">

应用程序文件夹结构

.
|-- app.rb
|-- config
|   |-- database.yml 
|   `-- environment.rb
|-- config.ru
|-- controllers
|   |-- application_controller.rb
|   |-- ratings_controller.rb
|   |-- recipies_controller.rb
|   `-- users_controller.rb
|-- Gemfile
|-- Gemfile.lock
|-- helpers
|-- lib
|   `-- sinatra
|       `-- auth.rb
|-- models
|   |-- category.rb
|   |-- rating.rb
|   |-- recipie.rb
|   |-- sub_category.rb
|   |-- text.rb
|   `-- user.rb
|-- public
|   |-- images
|   |-- javascripts
|   |   |-- holder.min.js
|   |   `-- ratings.js
|   `-- stylesheets
|       `-- main.css
|-- rakefile.rb 
|
`-- views
|-- auth_layout.erb
|-- create_recipie.erb
|-- edit_recipie.erb
|-- index.erb
|-- layout.erb
|-- login.erb
|-- not_found.erb
|-- recipie.erb
|-- recipies.erb
`-- signup.erb

您应该在其前面加上 stylesheets : href='stylesheets/main.css'。它不会在 public 目录中递归地查找和解析静态文件。

另外 rel 您 link 标签的属性应该是 stylesheet 而不是 stylesheets.