我有一個網站有一些靜態內容。它包含幾頁,CSS,JavaScript和圖像。我想在Heroku上免費提供這個功能,我知道我可以使用他們的一個網頁動態計劃。我的問題是,爲什麼他們的文檔建議在單個網頁動態主機上託管靜態內容?在一臺網絡測試儀上運行Rails或Sinatra會遇到什麼問題?並且使用機架只能以某種方式解決這些問題?爲什麼推薦使用一個Heroku web dyno機架?
回答
Rails和Sinatra都是基於機架的,所以如果你只是擁有靜態內容(比如嚴肅的.html頁面),那麼使用裸機架工作得非常好。
我把樣品庫比在https://github.com/jwo/rack-static-sample
的想法是你rackup文件(config.ru)只是簡單的在你的公共目錄中的文件的響應(這個版本只是一個單一的index.html)
use Rack::Static,
:urls => ["/stylesheets", "/images"],
:root => "public"
run lambda { |env|
[
200,
{
'Content-Type' => 'text/html',
'Cache-Control' => 'public, max-age=86400'
},
File.open('public/index.html', File::RDONLY)
]
}
我在尋找它爲什麼「效果很好」。以及爲什麼其他人不能很好地工作。 – Bradford
Sinatra和Rails將工作。但是你增加了Sinatra的複雜性和加載時間,然後用Rails增加了更多。所以更多的時間花在框架內部。隨着機架,你「更接近金屬」,所以你的IO綁定比CPU綁定更多。 –
建議這樣做,因爲它是針對問題的「最簡單」解決方案。爲什麼要使用Rails或Sinatra框架來處理傳入的請求,如果代碼沒有任何內容可以處理,那麼通過數百/數千行代碼就可以處理傳入的請求。
但是,如果您希望託管一個靜態網站,我會強烈推薦任何AWS S3,Github Pages或Google Drive over Heroku。 Heroku上的單個測試計劃可能是免費的,但那是因爲它會在一段時間後閒置,並且不會花費它們的資源。第一個進入怠速測功機的請求往往需要額外的5-15秒。
- 1. Heroku Web Dyno失敗
- 2. 爲什麼不推薦使用window.showModalDialog?代替使用什麼?
- 3. 推薦Clojure的Web框架
- 4. 爲什麼Logger.isInfoEnabled不推薦使用org.jboss.logging.Logger?
- 5. 爲什麼不推薦使用isJavaLetterOrDigit?
- 6. 爲什麼不推薦使用JButton.enable?
- 7. 爲什麼不推薦使用struts2 FilterDispatcher?
- 8. 爲什麼SET不推薦使用?
- 9. 爲什麼不推薦使用StringTokenizer?
- 10. std :: iterator爲什麼不推薦使用?
- 11. Object.observe()爲什麼不推薦使用
- 12. 爲什麼不推薦使用std :: strstream?
- 13. 爲什麼不推薦使用body.scrollTop?
- 14. CMS的推薦架構是什麼?
- 15. 一個NServiceBus.Host爲一個EndPoint,什麼是推薦的方法
- 16. 爲什麼不推薦使用assert_template,而應該使用什麼?
- 17. 爲什麼不推薦HibernateTemplate?
- 18. 你會推薦什麼.NET工具框架,爲什麼?
- 19. Web服務推薦,什麼和爲什麼?
- 20. 爲什麼W3C推薦一些XML URI?
- 21. 你會推薦什麼GUI框架
- 22. 什麼VB.Net框架你推薦?
- 23. 爲什麼拋出一個EJBException是一個「推薦」的做法?
- 24. Heroku Python部署只有一個dyno使用兩個.py文件
- 25. Heroku dyno /進程
- 26. jQuery切換不推薦使用什麼?
- 27. 什麼時候推薦使用MySQL BLOB?
- 28. 什麼是ASP.NET Web應用程序的推薦體系結構?
- 29. 什麼推薦機器學習libriries使用?
- 30. 推薦一個PHP驗證框架
我認爲他們推薦機架,因爲它對靜態內容更輕量級? –
是的,但究竟是什麼意思? – Bradford
你能鏈接到建議Rack的文檔頁面嗎,所以我們可以看看上下文嗎?看起來他們可能不推薦使用Rack來獲取靜態內容(或Rack一般而不是像Sinatra/Rails這樣的「基於Rack的」框架),因爲靜態內容只能由Nginx提供,甚至不會影響您的堆棧。換句話說,如果你只有html/js/css/images,並且請求正在觸發你的堆棧,那麼你做錯了什麼。我的博客是Heroku上的Rails應用程序,它將所有內容緩存到.html文件中。 Rails甚至不需要啓動。 – danneu