所以我的Sinatra应用程序中的config.ru
看起来像这样,我想知道是否有任何多余的内容:
require 'rubygems'
require 'bundler'
Bundler.require
require 'sass/plugin/rack'
Sass::Plugin.options[:style] = :compressed
use Sass::Plugin::Rack
require File.expand_path('app.rb', File.dirname(__FILE__))
run Sinatra::Application
顶部的rubygem
和bundler
行有什么意义?我无法在运行bundle install
之前运行rackup
吗?重点是什么?我需要这3行吗?我为什么需要它们?
另外,我正在为我的项目使用sass。我几乎不懂中间件。 sass
相关的线路在做什么?在较高的层面上,为什么Sass
需要来自Rack?
我想我得到了最后两行。我要求我的主文件在顶层被称为app.rb
而我正在运行Sinatra。没关系。
如果它有用,这是我的树的片段:
tree
.
├── Gemfile
├── Gemfile.lock
├── README.md
├── app.rb
├── config.ru
├── lib
│ ├── accounting_service.rb
│ ├── distributor.rb
│ ├── house_distributor.rb
│ ├── mixer.rb
│ ├── mixer_worker.rb
│ └── transaction_service.rb
├── public
│ ├── images
答案 0 :(得分:0)
require 'rubygems'
当你需要rubygems时,对内核方法require
进行猴子修补,以便找到与gem install
一起安装的ruby库。你可能安装了这样的捆绑器,所以在下一行找到捆绑器是必需的。
require 'bundler'
你需要在下一行要求捆绑使用它。
Bundler.require
这一行显示在Gemfiles
中,并且需要其中的所有内容。如果你不这样做,例如找不到sinatra
。如果您愿意,可以用明确要求替换捆绑器的东西。不推荐。
require 'sass/plugin/rack'
Sass::Plugin.options[:style] = :compressed
use Sass::Plugin::Rack
这是一个机架插件,可以将您的sass文件转换为css,并且您已将其配置为压缩生成的CSS。获胜的表现。