我有一个使用rackup和Sinatra :: Base(模块化应用程序)的小型Sinatra应用程序。我可以访问我的视图文件夹,但是当我使用命令rerun rackup
运行我的应用程序时,根本无法访问具有样式表和java脚本的公共文件夹。我已经尝试了很多关于堆栈溢出的东西,但没有什么能解决问题
控制器/ 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
答案 0 :(得分:1)
您应在其前加stylesheets
:href='stylesheets/main.css'
。它不会在公共目录中递归地查找和解析静态文件。
链接标记的rel
属性也应为stylesheet
而不是stylesheets
。