内容简介:解决lighttpd运行后浏览器无法渲染html
好久以前遇到的问题,当时是在fl2440上移植 lighttpd
,成功启动 web
服务器后访问网页会出现下载提示框,原来浏览器并没有渲染 html
页面,而是把它当作文件下载来处理。
谷歌了好久都没有答案,结果放弃继续折腾 lighttpd
,转而移植 appweb+php
,直到上次在手机上成功用 termux
装上 wordpress
才重新解决了这个问题。
搞来搞去原来是http相应报文的锅,响应报文中必须以字段 Content-Type
指明媒体文件的类型,这样浏览器才能正确进行解析。
所以lighttpd的配置文件中必须有
mimetype.assign = ( ".pdf" => "application/pdf", ".class" => "application/octet-stream", ".pac" => "application/x-ns-proxy-autoconfig", ".swf" => "application/x-shockwave-flash", ".wav" => "audio/x-wav", ".gif" => "image/gif", ".jpg" => "image/jpeg", ".jpeg" => "image/jpeg", ".png" => "image/png", ".svg" => "image/svg+xml", ".css" => "text/css", ".html" => "text/html", ".htm" => "text/html", ".txt" => "text/plain", ".dtd" => "text/xml", ".xml" => "text/xml" )
接下来看看配置文件加和不加 之间有什么不同
含有 mimetype.assign
字段的响应报文头
-bash-4.4$ curl -I 127.0.0.1:10086 HTTP/1.1 200 OK Content-Type: text/html Accept-Ranges: bytes ETag: "1739553501" Last-Modified: Sun, 26 Feb 2017 01:21:41 GMT Content-Length: 5 Date: Tue, 28 Feb 2017 12:55:27 GMT Server: lighttpd/1.4.45
不含有 mimetype.assign
字段的响应报文头
-bash-4.4$ curl -I 127.0.0.1:10086 HTTP/1.1 200 OK Content-Type: application/octet-stream Accept-Ranges: bytes Content-Length: 5 Date: Tue, 28 Feb 2017 12:56:46 GMT Server: lighttpd/1.4.45
果不其然, Content-Type
导致了浏览器解析效果的差异性,这说明了浏览器并不能通过后缀名来直接识别网页文件,必须通过相应报文来配合服务器进行页面渲染。
以上所述就是小编给大家介绍的《解决lighttpd运行后浏览器无法渲染html》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
程序员的算法趣题
[ 日] 增井敏克 / 绝 云 / 人民邮电出版社 / 2017-7 / 55.00元
本书是一本解谜式的趣味算法书,从实际应用出发,通过趣味谜题的解谜过程,引导读者在愉悦中提升思维能力、掌握算法精髓。此外,本书作者在谜题解答上,通过算法的关键原理讲解,从思维细节入手,发掘启发性算法新解,并辅以Ruby、JavaScript等不同语言编写的源代码示例,使读者在算法思维与编程实践的分合之间,切实提高编程能力。 本书适合已经学习过排序、搜索等知名算法,并想要学习更多有趣算法以提升编程技巧......一起来看看 《程序员的算法趣题》 这本书的介绍吧!