访问Sinatra Rackup中的公用文件夹

时间:2015-07-09 05:33:47

标签: ruby activerecord sinatra rack sinatra-activerecord

我有一个使用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

1 个答案:

答案 0 :(得分:1)

您应在其前加stylesheetshref='stylesheets/main.css'。它不会在公共目录中递归地查找和解析静态文件。

链接标记的rel属性也应为stylesheet而不是stylesheets