В конечном итоге это оказалось комбинацией двух проблем:
Сначала
Если вы начинаете документ только с <html> ...
, то это, кажется, будет считаться недействительным html файл. Таким образом, вложенная ссылка на css, который доставляется с text/plain
в качестве mimetype, будет отображаться нормально.
Если начать правильно с <!DOCTYPE html> ...
, то не прощается, что mimetype по существу неверен.
Второй
CherryPy доставил text/plain
в качестве mimetype для моего файла css. Я пробовал его на двух других windows компьютерах, и он не выявил проблемы. Я попробовал другой старый компьютер, который я использовал ранее для некоторой разработки, и он показал такое же ошибочное поведение ...
Linux никогда не показывал этот сбой, ни с каким вкусом, который я пробовал.
I исследовано глубже: Cherrypy использует стандартный модуль mimetype python, или я могу передать выделенный Content-Type для css при включении 'tools.staticdir.content_types': { 'css': 'text/css' }
в мою конфигурацию \static
. При передаче выделенного Content-Type ошибка исчезла.
Теперь, почему кажется, что всегда существует неправильная ассоциация только в определенных windows системах? Я обнаружил, что winreg используется для прямого чтения миметипов из реестра. Проверка Computer\HKEY_CLASSES_ROOT\.css
показала связь с text\plain
. Так что это вызвало у меня головную боль! После изменения Computer\HKEY_CLASSES_ROOT\.css[Content Type]
на text/css
он наконец заработал, как ожидалось. Последняя ассоциация на моем компьютере разработки в реестре была (Standard) с VisualStudio.css.14.0
, возможно, таким образом, mimetype также был установлен этой программой.
Проблема обсуждалась на gitter.im на Cherrypy / cherrypy, и мне там помогли с идеями и предложениями, так что большое спасибо @webknjaz и @cyraxjoe за попытку помочь мне