gpt4 book ai didi

asp.net - 使 IIS 不将页面呈现为 WML。曾经!

转载 作者:行者123 更新时间:2023-12-03 02:42:06 26 4
gpt4 key购买 nike

一些背景

我目前正在开发一个移动网站,因此我一直在 Firefox 中使用 User Agent switcher 切换用户代理。 (可爱的插件)。但是当我转到管理站点时,它呈现为 WML ,这让 Firefox 很困惑,因此它尝试下载它而不是显示内容。这让我感到沮丧(不是沮丧地倒下,而是足够了!)。

我想要的!

如何使我们的管理网站始终以 text/html 而不是 WML 的形式发送内容,无论请求用户代理如何?

我完全控制了这个盒子。这是 IIS 6.0。

最佳答案

We had this ,并且由于我们将 razor 与 html 一起使用,因此页面无法自动适应。对我来说,最简单的解决方法是更改​​ _ViewStart.cshtml 中的内容类型:

Response.ContentType = "text/html";

只有当没有明确设置任何内容时,“自己找出内容类型”的疯狂才会发生。所以...设置它。

您的实际 View 仍然可以覆盖此:

@{
Layout = null;
Response.ContentType = "application/atom+xml";
}

有关信息,要在本地开发服务器上测试此问题(使用干净的缓存以避免以前缓存的数据产生错误结果),请执行 wget 或 Fiddler 之类的操作:

wget yourpage --header="Accept: text/vnd.wap.wml" --server-response --header="Accept-Encoding: gzip, deflate"

并寻找:

Content-Type: text/vnd.wap.wml; charset=utf-8

在结果中;如果您看到这一点,则 IIS/ASP.NET 已决定假装您的回复满足请求的“Accept” header ...即使事实并非如此。更糟糕的是:您现在可能可以从 wget 获取“text/vnd.wap.wml”,而无需指定 Accept header (或指定诸如“text/html”之类的内容);如果您看到此信息,您遇到了问题(或者:您的用户遇到了问题) - 您有一个 WAP 缓存响应正在传送给非 WAP 客户端。

通过上述调整,第一个 wget 将返回“text/html” - 因为这就是我们的内容。抱歉,低级浏览器;你应该包含“text/html”作为一个选项 - 如果你不能处理“text/html”......你就太糟糕了。

关于asp.net - 使 IIS 不将页面呈现为 WML。曾经!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1261144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com