使用 Ruby 设置基本的本地服务器

set up a basic local server with ruby

本文关键字:服务器 Ruby 设置 使用      更新时间:2023-09-26
这可能是

一个菜鸟问题,但我正在做一个 Ruby 项目,现在我必须从 localhost 提供一些文件,以进行几个需要读取本地加载的网页的测试。我正在使用gulp,但我想用 Ruby 来做。我发现了Rack,但我无法绕开它来做我想做的非常简单的事情。

这是我的文件夹结构:

$ tree
.
├── lib
│   └── page_reader.rb
├── spec
│   ├── fixtures
│   │   └── index.html
│   └── page_reader_spec.rb
└── gulpfile.js

我现在gulpfile.js是:

var
  browsersync  = require('browser-sync').create(),
  gulp         = require('gulp')
;
gulp.task('server', function() {
  browsersync.init({
    server: {
      baseDir: './spec/fixtures/'
    },
    port:   4000,
    notify: false,
    open:   false
  });
});

基本上,我在文件夹中有一个index.html ./spec/fixtures/并且我正在使用browser-sync模块启动本地服务器,然后我将其指向我的测试文件夹中的fixtures文件夹。当我想运行测试时,我必须执行以下操作:

$ gulp server

在一个终端中,然后转到http://localhost:4000加载我正在运行测试的页面,然后在另一个终端中执行以下操作:

$ bundle exec rspec

以运行测试。

有没有办法通过gulp而不是使用 Ruby 来完成我正在做的事情?我搜索了一个与browser-sync模块类似的宝石,但找不到任何宝石。但是,我认为必须有一种方法可以像吞咽一样简单。我可以继续用gulp来做,因为它工作得很好,但是以这种特定的方式和上下文混合JavaScript和Ruby感觉很奇怪。

我知道

的最简单的答案:

cd spec/fixtures && ruby -run -e httpd -- -p 4000 .

这是由Aaron Patterson(@tenderlove)通过Gavin Kistner,Ben Oakes和数千名演员提供的。我爱一个好的社区。=]