我的应用程序有 2 个未解决的问题。我在 ASP.NET 上构建了一个网站(桌面)和一个移动网站。两个站点具有相同的功能,但移动端的视图不同。桌面版有一个管理模块,作为管理员,我可以在其中更改不同的内容,其中...一些图像在两个版本中都显示。
我的烦恼如下:
如何仅使用一个域来打开站点,具体取决于使用的设备
考虑到上述项目....如何才能为两个站点仅使用一个内容文件夹?(不同的 Site.css)
我将感谢域文件夹结构的帮助,以使这成为可能
我的应用程序有 2 个未解决的问题。我在 ASP.NET 上构建了一个网站(桌面)和一个移动网站。两个站点具有相同的功能,但移动端的视图不同。桌面版有一个管理模块,作为管理员,我可以在其中更改不同的内容,其中...一些图像在两个版本中都显示。
我的烦恼如下:
如何仅使用一个域来打开站点,具体取决于使用的设备
考虑到上述项目....如何才能为两个站点仅使用一个内容文件夹?(不同的 Site.css)
我将感谢域文件夹结构的帮助,以使这成为可能
您的问题相当广泛,但希望这些资源可以激发您朝着实现您想要的方向前进
我会选择一个站点,并将其重构为移动设备。做这个 imo 的一个好方法是实现 CSS 媒体查询。查看来自 smasingmagazine 的这篇文章,了解该主题的介绍和一些入门的想法。使用媒体查询,您可以根据屏幕宽度、方向等因素定义断点,以便相应地呈现您的站点。
还要考虑实现 javascript 库Modernizr,它也可以帮助您进行设备检测。这个库可以帮助检测用户是否具有某些可能会影响您的移动开发的某些方面的能力,并且还可以提供基于设备检测的条件资源加载(如果您对移动站点将加载的内容很挑剔以节省带宽,这将非常有用)。即我的桌面需要所有这些桌面javascript 库,而我的移动站点可能只需要这个。
如果从头开始在您的能力范围内,那么您可能会更好地从头开始,布置您希望第四次移动的架构以跨越多个平台。精心计划使用 CSS 媒体查询和modernizr 等资源可以产生一个网站,该网站有可能在几乎任何设备上看起来都很棒,所有这些都包含在一个项目中。
如果您只想托管一个网站,这是完全可能的,我建议您在浏览器中使用用户代理。用户代理因浏览器/设备而异。因此,您可以轻松地为每个设备维护不同的视图。
打开 Global.asax 文件并将以下代码添加到 Application_Start 方法。
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("iPhone")
{
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf
("iPhone", StringComparison.OrdinalIgnoreCase) >= 0)
});
然后,您可以轻松地在您的视图文件夹中创建不同的视图。只需确保为视图添加前缀:
索引.cshtml
iphone.index.cshtml
您可以在此网站上找到更多信息:http ://www.asp.net/mvc/tutorials/mvc-4/aspnet-mvc-4-mobile-features
我举了一个基于设备类型托管具有不同布局的网站的示例:http: //kotatgent.azurewebsites.net/
您可以通过下载此扩展程序手动更改 chrome 中的用户代理来测试这一点: https ://chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg