Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么要使用以<;开头的html文件;!DOCTYPE html>;在窗户上加樱桃糖看起来不对?_Python_Css_Windows_Mime Types_Cherrypy - Fatal编程技术网

Python 为什么要使用以<;开头的html文件;!DOCTYPE html>;在窗户上加樱桃糖看起来不对?

Python 为什么要使用以<;开头的html文件;!DOCTYPE html>;在窗户上加樱桃糖看起来不对?,python,css,windows,mime-types,cherrypy,Python,Css,Windows,Mime Types,Cherrypy,有人能解释为什么使用css会导致浏览器中缺少css吗? 我准备了一个小测试(查看),其中提供的两个html文件之间的唯一区别是第一行 在Windows平台上: 因此,如果省略了(如index.html中所示),则背景看起来绿色良好,我们有一个愉快的Hello world 如果包含,则css不会用于显示 如果第一行更改为html拼写错误,如,则文档显示良好。但一旦html或html或其他变体一起出现在第一行,它就无法使用css 在Linux平台上: 两个文件都显示良好 因此,我怀疑原因在于wind

有人能解释为什么使用css会导致浏览器中缺少css吗? 我准备了一个小测试(查看),其中提供的两个html文件之间的唯一区别是第一行

在Windows平台上: 因此,如果省略了(如index.html中所示),则背景看起来绿色良好,我们有一个愉快的Hello world

如果包含,则css不会用于显示

如果第一行更改为html拼写错误,如,则文档显示良好。但一旦html或html或其他变体一起出现在第一行,它就无法使用css

在Linux平台上: 两个文件都显示良好

因此,我怀疑原因在于windows或windows上的cherrypy实现


错误显示在我尝试的任何浏览器上:Chrome、Firefox、Edge和Opera,最后发现是两个问题的组合:

弗斯特 如果只使用
启动文档,那么这似乎不是一个真正有效的html文件。 因此,附带的指向css的链接将以mimetype的形式提供
text/plain

如果正确地以
开头,则不能原谅mimetype本质上是错误的

第二 CherryPy作为我的css文件的mimetype交付了
text/plain
。我在另外两台windows电脑上试用了它,但没有发现问题。我尝试了另一台旧电脑,我之前用它进行了一些开发,它显示了相同的错误行为

Linux从来没有出现过这种失败,我也没有尝试过

我进行了更深入的研究:Cherrypy使用python标准mimetype模块,或者在我的
\static
配置中包含
'tools.staticdir.Content_types':{'css':'text/css'}
时,我可以为css传递一个专用的内容类型。传递专用内容类型时,故障消失

为什么在某些windows系统上总是出现错误的关联? 我发现winreg用于直接从注册表中读取mimetype。 检查
Computer\HKEY\u CLASSES\u ROOT\.css
显示与
text\plain
相关。 所以这让我头疼! 将
Computer\HKEY\u CLASSES\u ROOT\.css[内容类型]
更改为
text/css
后,它终于如预期的那样工作了。我的开发计算机在注册表中的最后一个关联是(标准)与
VisualStudio.css.14.0
,因此可能是mimetype也是由该程序设置的


这个问题在gitter.im上的cherrypy/cherrypy上讨论过,我在那里得到了一些想法和建议的帮助,所以非常感谢@webknjaz和@cyraxjoe试图帮助我

PS:我发现另外两台装有windows的计算机,它们可以正确地完成任务使用其他版本的python3或cherrypy不会改变结果