1

[[ [已解决] G-WAN 的最新更新已经修复了这个默认的 MIME 类型。]]


G-WAN 4.3.11 将我的所有 csp 文件都返回为“text/plain”类型。这怎么可能解决?!目前,它只不过是一个静态文件服务器。

例如,//127.0.0.1:8080/?hello.py 响应“Hello, Python!<br>”(文本/纯文本)

这应该返回“你好,Python!” 不显示 <br> (作为文本/html)

笔记:

以前版本的 GWAN 运行良好。运行 Fedora 18

csp 源正在编译并返回正确的输出,这只是服务器没有以正确的内容类型响应的问题。

.html 文件应返回 text/html。

Python: print(os.environ.get('CONTENT_TYPE')) 返回“无”

Python:os.environ['CONTENT_TYPE'] = 'text/html' 没有影响

请求 URL://localhost:8080/?hello.py
请求方法:GET
状态码:200 OK

请求标头
GET /?hello.py HTTP/1.1
主机:本地主机:8080
连接:保持活动
缓存控制:max-age=0
Pragma:无缓存
接受:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
用户代理:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22
接受编码:gzip、deflate、sdch
接受语言:en-US,en;q=0.8
接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.3

查询字符串参数
你好.py:

响应标头
HTTP/1.1 200 正常
服务器:G-WAN
日期:2013 年 3 月 12 日星期二 18:50:33 GMT
最后修改时间:2013 年 3 月 12 日星期二 18:50:33 GMT
ETag:“c9ddeef-513f78fa-25”
变化:接受编码
接受范围:字节
内容类型:文本/纯文本;字符集=UTF-8
内容长度:37
4

1 回答 1

0

G-WAN 4.3.11 将我的所有 csp 文件都返回为“text/plain”类型。我怎样才能解决这个问题?

G-WAN 无法猜测脚本要使用的 MIME 类型。应用程序服务器不会这样做,因为 MIME 类型检测会太慢并且可能是错误的。

G-WAN C/C++/D/CS/Java 脚本让您可以直接使用 指定回复 MIME 类型get_env(),或者让您使用build_headers(),或者让您直接在回复缓冲区中写入 HTTP 标头。

但是对于像 Perl 或 Python 这样的 CGI 语言,如果您想更改特定 HTTP 标头(例如“Content-type”)的值,那么您必须编写自己的 HTTP 标头,并指定您认为相关的“Content-Type” ”。

G-WAN 导出 SERVER 环境变量,让 CGI 脚本知道 HTTP 请求标头而无需解析它们(这些变量不用于修改 G-WAN 自动生成的 HTTP 标头)。

有关如何从 G-WAN Python 脚本中获取 SERVER 环境变量,请查看hello.py示例。


更新

现在您的问题已被重写,很明显您的问题与 G-WAN 脚本的默认MIME 类型有关。我们发布了 v4.3.14 来修复这个 v4.3.11 问题。

关于支持的 MIME 类型,它们记录在 G-WAN PDF 手册中,并且如其中所示,我们会​​定期添加用户建议的条目(如果可以普遍使用)。

请注意,对于您讨论的情况(G-WAN 脚本),MIME 类型配置文件将毫无意义,因为 G-WAN 脚本要么选择默认 MIME 类型,要么在“Content-Type”HTTP 标头中明确覆盖它.

G-WAN 通过动态调整选项(如自适应超时,这比任何固定值更有效)或通过使用文件系统而不是依赖仅描述文件系统定义的配置文件来避免配置文件。

G-WAN 是由程序员制作并为程序员制作的工具,并非所有程序员都有时间学习他们必须使用的每台服务器的大量专有文件配置选项。请不要因为我们试图让 G-WAN 保持简单而开枪——这是一个罕见的例外。

于 2013-03-12T19:27:19.980 回答