2015-05-27 24 views
0

我正在使用Sphinx構建文檔項目。在發生更改時我創造了這個劇本看目錄,並觸發獅身人面像建造:使用python-livereload無法正確地使用字體

import os 
import sys 
from livereload import Server, shell 

wd = os.path.dirname(sys.argv[0]) 

server = Server() 

server.watch(wd, shell('make.bat clean && make.bat html', cwd=wd), delay=1) 

server.serve(root='../_build/html', port=8000, host='localhost') 

這個偉大的工程,但在主題(ReadTheDocs)所有網頁字體正在與Content-Type: text/html和Chrome開發者控制檯顯示轉移:

Failed to decode downloaded font: http://localhost:8000/_static/fonts/Lato-Regular.ttf 
Failed to decode downloaded font: http://localhost:8000/_static/fonts/fontawesome-webfont.woff?v=4.2.0 
Failed to decode downloaded font: http://localhost:8000/_static/fonts/Lato-Bold.ttf 
Failed to decode downloaded font: http://localhost:8000/_static/fonts/RobotoSlab-Bold.ttf 
Failed to decode downloaded font: http://localhost:8000/_static/fonts/RobotoSlab-Regular.ttf 
Failed to decode downloaded font: http://localhost:8000/_static/fonts/fontawesome-webfont.ttf?v=4.2.0 

但是,指向同一目錄的本地IIS網站工作得很好。我假設這是TornadoServer的一個問題 - 可能會將未知的MIME類型默認爲text/html。有沒有人有這個解決方案?

我以ASP.NET Docs爲起點:https://github.com/aspnet/Docs/。按照他們的貢獻指南(使用sphinx-autobuild),這也有同樣的問題。

回答

2

Tornado從python標準庫的mimetypes module中獲取靜態文件的MIME類型。你需要確保你的系統mimetypes數據庫(通常爲/etc/mime.types。你的問題表明你使用的是Windows,它不是官方支持的Tornado平臺,我不知道Windows是否具有相同的功能)包含所有文件您想要提供的類型,或者用mimetypes.add_type手動補充。

+0

太棒了!在我的Python腳本中添加'mimetypes.add_type(「application/x-font-woff」,「.woff」)''和'mimetypes.add_type(「application/octet-stream」,「.ttf」)'。謝謝。 –