【问题标题】:set up a basic local server with ruby用 ruby​​ 设置一个基本的本地服务器
【发布时间】:2016-11-10 01:55:37
【问题描述】:

这可能是一个菜鸟问题,但我正在处理一个 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
  });
});

基本上,我在./spec/fixtures/ 文件夹中有一个index.html,我正在使用browser-sync 模块来启动本地服务器,然后我让它指向我的测试文件夹中的fixtures文件夹。当我想运行测试时,我必须这样做:

$ gulp server

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

$ bundle exec rspec

运行测试。

有没有办法通过gulp 做我正在做的事情,但使用 Ruby 代替?我搜索了一个与 browser-sync 模块类似的 gem,但没有找到。但是我认为必须有一种方法与使用 gulp 一样简单。我可以继续使用gulp,因为它运行良好,但在这种情况下以这种特殊方式混合 JavaScript 和 Ruby 感觉很奇怪。

【问题讨论】:

  • 您希望包含哪些特定的浏览器同步功能?您的问题标题表明您正在尝试设置一个静态 http 服务器,这比您尝试做的更简单。看看 Selenium 的红宝石绑定。

标签: javascript ruby server gulp localhost


【解决方案1】:

我知道的最简单的答案:

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

这是由Aaron Patterson (@tenderlove)、Gavin KistnerBen Oakes 和成千上万的演员提供的。我爱一个好的社区。 =]

【讨论】:

  • 谢谢,这行得通,正是我想要的!而且我也可以用CI+1
猜你喜欢
  • 1970-01-01
  • 2012-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 2011-01-02
  • 2017-09-18
  • 1970-01-01
相关资源
最近更新 更多