Ian*_*oyd 5 asp.net iis mobile mobile-website
假装我有一个现有的网站,例如:
www.stackoverflow.com
我现在想公开这个网站的移动版本:
m.stackoverflow.com
IIS及其主机头名称解析通常需要创建两个网站:
除了现在我在IIS中有两个网站.这意味着我必须在它们之间复制代码/文件.我不需要(也不想)复制两个网站之间的所有"模型"和"控制器"代码.我宁愿有一个公开移动版本的网站.
我可以让default
页面m.stackoverflow.com
简单地执行重定向到"真实"网站上的移动登录页面:
m.stackoverflow.com\default.asp
:
<% Response.Redirect "www.stackoverflow.com/mobile" %>
Run Code Online (Sandbox Code Playgroud)
然后客户端将以(例如)结束www.stackoverflow.com/mobile/default.aspx
.
这不是我想要的.我希望它出现在他们正在访问的浏览器中m.stackoverflow.com
.
所以我在IIS中可以做的是为一个 IIS网站提供两个主机头名称:
并检查http-request HOST
标头:
GET https://stackoverflow.com/questions/ViewQuestion.aspx?qid=3623844
Host: stackoverflow.com
Run Code Online (Sandbox Code Playgroud)
经文
GET https://stackoverflow.com/questions/ViewQuestion.aspx?qid=3623844
Host: m.stackoverflow.com
Run Code Online (Sandbox Code Playgroud)
除了现在我的所有网站页面必须首先检查Host
属性,然后根据它找到的更改渲染行为.这在经典ASP中运行得有点好:
ViewQuestion.asp
<% Dim mobileVersion
...
If MobileVersion Then
%>
<html>
...
</html>
<% Else %>
<html>
...
</html>
<% End If %>
Run Code Online (Sandbox Code Playgroud)
但是在一个页面中制作双视图非常痛苦.我更喜欢有一个ViewQuestion
视图,专门用于显示常规或移动视图.
我也知道我不能使用media=handheld
媒体类型.
media=handheld
媒体类型那么,最能支持网站移动版本的源代码和IIS配置的可接受组合是什么?
编辑一:删除了对MVC的标题引用.不希望人们假设使用某些特定的MVC框架,因为我没有使用任何MVC框架.我正在使用ASP/ASP.net.
在 mvc 中,您可以通过覆盖视图引擎来提交移动视图。我们在大约 3 天的时间里创建了我们网站的 iPhone 版本。
http://www.hanselman.com/blog/ABetterASPNETMVCMobileDeviceCapabilityViewEngine.aspx
归档时间: |
|
查看次数: |
2599 次 |
最近记录: |