我正在創建一個Sinatra Web應用程序,我想爲所有服務的網頁提供MIME類型application/xhtml+xml
。我使用Builder作爲模板引擎。請注意,該應用程序還將爲application/xml
提供各種AJAX api界面,同樣使用Builder模板引擎以及使用scss模板引擎的text/css
。爲Sinatra服務XHTML
我注意到,生成的網頁接收到text/html
內容類型,而api接口取而代之的是內容類型application/xml
。但是,我不知道mime類型是如何決定的; html
標籤的存在?是否使用佈局?無論如何,我希望應用程序發佈一個application/xhtml+xml
mime類型,而不是text/html
mime類型。
我知道我可以用content_type
調用指定MIME類型,但是我想避免在每個路由功能中都需要這個。有什麼方法可以爲給定的模板引擎設置默認的MIME類型?或者可以通過視圖的文件名來控制MIME類型? Tilt是否提供了任何方法來以好方式控制MIME類型?
Sinatra文檔解釋了一種基於文件擴展名配置MIME類型的方法:[Readme-Mime types](http://www.sinatrarb.com/intro#Mime%20Types)。 您可以使用'before do'塊並設置'content_type',但我不確定這是否是完成此操作的最佳方法。 –
另外,我在你的文章中加入了標籤'ruby',你可能會獲得更多的流量。 –
除非您專門將其更改,否則使用Builder的_all_請求將具有'application/xml'作爲內容類型。你有'之前'或之後的塊設置'content_type'嗎? – matt