配置我的sinatra应用程序。使用Bundler和Sass

时间:2018-01-31 15:27:18

标签: sinatra

所以我的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

顶部的rubygembundler行有什么意义?我无法在运行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

1 个答案:

答案 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。获胜的表现。