2017-04-17 13 views
-4

私のデザイナーは最近、別のページの新しいデザインフォルダを私に提供し、次のように述べました:Ruby/Railsでシンプルなサーバーを起動するにはどうすればよいですか?

httpサーバーでdistフォルダを提供する必要があります。たとえば、次のように私はRailsので、これを達成するにはどうすればよい異なるページ

のためのpython -m SimpleHTTPServer 8000 オープンhttp://localhost:8000http://localhost:8000/listing.htmlhttp://localhost:8000/detail_view.html?またはRuby?あなたが新しいレールのアプリを作成したら

+0

それはそれだけで基本的なHTMLですが、レールのアプリカントーではありません。 css、およびjs。彼は、httpサーバを使ってフォルダを提供することを提案しました。私たちはこれをpythonの代わりにrubyを使ってどうやって行うことができますか?上記の例に従ってください。 –

+0

私は上記のコメントから、動的コンテンツと静的コンテンツの違いを知っていることを認識しています。私は私の答えを変えています。コメントの質問に質問を変え、Railsタグを削除してください。 – fbelanger

+0

もしあなたがRailsを必要とせずに動作するPythonソリューションを持っているなら、それにこだわるのはなぜですか? – tadman

答えて

0

rails new your_app

だけ端子にrails sまたはrails serverを入力します。これにより、localhost:3000上のサーバーが起動します。

+0

Railsを実行して静的ファイルサーバーを使用するとしますか? IMHOスクリューハンマーを使ってスクリューを開くのが好きです...オープニングが必要なものは開けないと言っているわけではありませんが、仕事のための最良のツールはほとんどありません。 – Myst

1

おそらく、HTML、CSS、JavaScript静的資産フォルダ(好ましくはpublicと呼ばれる)のドキュメントルートを持つWebrickサーバーをスピンアップすることを検討します。

​​

1つのライナー同等:

ruby -rwebrick -e'WEBrick::HTTPServer.new(Port: 8000, DocumentRoot: "/var/www/app/public").start' 

フロントエンドの男が提供するPythonコードのちょうどRubyのバージョンです。

多分、Pythonを使用するだけでも、正直なところ大したことではありません。本番環境で

http://ruby-doc.org/stdlib-2.0.0/libdoc/webrick/rdoc/WEBrick.html

http://tobyho.com/2009/09/16/http-server-in-5-lines-with/

EDIT

、並行処理が必要です。

WEBrickは、デフォルトではRailsで使用されたときに単一スレッドとして動作するため、Herokuのようなプロバイダは強く推奨されていません。

https://devcenter.heroku.com/articles/ruby-default-web-server

しかし、WEBrickに、それ自体は、マルチスレッドのウェブサーバです。

https://github.com/rails/rails/issues/10772

Is puma the ONLY multi-threaded rails 4 http server?

0

私が正しくあなたを理解していた場合、あなたは、Rubyを使用しながら、静的なファイルを提供する疑問を抱いています。

Ruby標準ライブラリ(WEBrick)の一部として提供されるビルトインサーバーは、本番環境や重い負荷(大容量ファイル)に最適ではないため、この回答を追加しています。

一般に、ほとんどの本番環境では、ネットワークスタックが少し異なります。多くの場合、nginx/Apache層は静的ファイルを処理し、Rubyサーバは動的コンテンツを処理します。

しかし、(リソースを犠牲にして)人生を楽にするために、Rubyのほとんどのフレームワーク(Rails、Sinatraなど)は静的ファイルの提供と動的機能をサポートしています。

あなたは、フレームワークを使用するか、または静的なファイルを提供するために(ほとんどのフレームワークで使用されるプラットフォームである)ラックに見ることができます。また

、ここで

が直接ラックを使用したアプローチだと、このような pumaなど、ほとんどのRubyサーバ(で使用することができるような iodine(私は著者だ)サービス提供の静的ファイルをサポートして...いくつかのRubyのサーバ、 、 iodine, thinなど)。

ここでは、アプリケーションのルートにconfig.ruという名前のファイルに次を保存し、簡単なRackアプリケーションです:あなたは...コマンドライン実行からルビーサーバーの宝石をインストールしてください

# Our app will simply return a 404 not found code 
RESPONSE = [404, { 'Content-Type'.freeze => 'text/html'.freeze, 
     'Content-Length'.freeze => '14'.freeze }.freeze, 
['File Not Found'.freeze]].freeze 
# This is the application object 
app = proc do |_env| 
    RESPONSE 
end 

# We will use the Rack static file service middleware. 
# You might want to update the folder name. 
use Rack::Static, :root => 'public' 

run app 

することができます次のいずれかを使用します。

gem install puma 
# or 
gem install iodine 
# or 
gem install thin 

次に、単純に(あなたのルビーアプリケーションconfig.ruが置かれているフォルダ内の)コマンドラインからサーバーを実行します。すなわち:

puma -p 8888 
# or 
iodine -p 8888 

P.S.

は、nginxのやApacheなどのWebサーバーは、おそらく仕事に最適なツールであることを...言いました。

ことがなければ、あなたはおそらく暗号化されていないためiodine(SSLなし)静的ファイルで提供を使用することができます(最初にインストールすることを忘れないでください):

iodine -www ./public 

をあなたは、このためのRubyアプリケーションを必要としない、あなたはよ実行するRubyアプリケーションを与えずに、コマンドラインからRubyアプリケーションサーバーを起動するだけです。

関連する問題