我的设计师最近给我提供了不同页面的新设计文件夹,并提到以下内容:如何在Ruby/Rails中启动一个简单的服务器?
您需要使用http服务器为dist文件夹提供服务。例如:蟒蛇-m SimpleHTTPServer 8000 开放http://localhost:8000http://localhost:8000/listing.html和http://localhost:8000/detail_view.html为
不同的页面我如何做到这一点使用Rails?还是Ruby?
我的设计师最近给我提供了不同页面的新设计文件夹,并提到以下内容:如何在Ruby/Rails中启动一个简单的服务器?
您需要使用http服务器为dist文件夹提供服务。例如:蟒蛇-m SimpleHTTPServer 8000 开放http://localhost:8000http://localhost:8000/listing.html和http://localhost:8000/detail_view.html为
不同的页面我如何做到这一点使用Rails?还是Ruby?
一旦你创建了一个新的Rails应用程序有:
rails new your_app
只需键入rails s
或rails server
到终端。这将在localhost:3000上启动一个服务器。
你会运行Rails有一个静态文件服务器?恕我直言,这有点像使用大锤打开螺丝钉...我并不是说它不会打开任何需要的东西,但它并不是工作的最佳工具。 – Myst
也许看看用HTML,CSS和JavaScript静态资产文件夹(最好称为public)的文档根旋转Webrick服务器。
的一个衬垫当量:
ruby -rwebrick -e'WEBrick::HTTPServer.new(Port: 8000, DocumentRoot: "/var/www/app/public").start'
这仅仅是通过您的前端家伙提供的Python代码的红宝石版本。
也许只是使用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已被Heroku等提供程序强烈推荐,因为默认情况下,它在Rails使用时表现为单个线程。
https://devcenter.heroku.com/articles/ruby-default-web-server
但使用WEBrick本身是一个多线程Web服务器。
如果我正确认识你,你想知道同时使用Ruby提供静态文件。
我添加了这个答案,因为作为Ruby标准库(WEBrick)的一部分提供的内置服务器对于生产环境或较重的负载(即较大的文件)而言并非最佳选择。
通常,大多数生产环境使用网络堆栈有点不同。通常,nginx/Apache层将处理静态文件,而Ruby服务器将处理动态内容。但是,为了使生活更轻松(以牺牲资源为代价),大多数主要的Ruby框架(Rails,Sinatra等)都支持静态文件服务以及动态功能。
您可以使用框架或查看Rack(这是大多数框架使用的平台)来提供静态文件。
此外,一些Ruby的服务器,如iodine
(我是作者)支持静态文件服务...
这里是直接使用机架的方法,可与大多数红宝石服务器(如puma
使用,iodine
,thin
等)。
这里有一个简单的Rack应用,节省下在你的应用程序的根命名config.ru
文件:
# 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应用程序运行。
这不是一个rails应用程序,它只是基本的html。 css和js。他建议我们用http服务器来提供文件夹,我们如何使用ruby而不是python来做到这一点?按照上面的例子。 –
我从上面的评论意识到,你知道动态和静态内容的不同。我正在改变我的答案。也许改变你的问题到评论中的问题,并删除Rails标签。 – fbelanger
如果你不需要Rails,并且你有一个可行的Python解决方案,为什么不坚持呢? – tadman