我的客户有一个使用OpenCMS开发的现有商业网站,他们想创建一个移动版本。
我看到过以"m"而不是"www"开头的网站。我猜这些网站是访问同一数据库但独立于实际网站的移动版本。当检测到的设备是移动设备时,用户会被重定向到移动版本。
但是,我还看到OpenCMS可以选择使用<cms:device type="mobile">
创建移动友好模板
我对创建移动网站的了解非常有限。所以我只想知道上面两个选项中的哪一个或我不知道的任何其他选项将是正确的前进方向。
谢谢!
越来越多的web开发旨在实现"响应式web设计"。你可以先读一点这方面的内容http://en.wikipedia.org/wiki/Responsive_Web_Design作为开始。在没有看到实际网站的情况下,很难决定哪一个最适合你的需求,但一个快速响应的方法可能是一个好的开始。另一种选择是制作一个仅限移动的网站(m),但由于移动平台并不像人们希望的那样同质化,我的观点是走向响应性的替代方案。
对于我的一些网站,我使用了创建一个"前端"模板的方法,该模板根据用户代理来决定要包含哪个真正的模板。
当然,使用这种方法,您需要创建两个不同且独立的模板,一个用于网站的完整桌面版本,另一个用于移动版本。当然,您仍然可以在它们之间共享css、图像和JavaScript。
从零开始,现在,我会选择jthemans的答案,一个反应灵敏的设计。
但是,如果你没有大预算,并且需要快速想出解决方案,那么独特的模板方法会更快。
无论如何,这里是我提到的简单的"前端"模板:
<%@ page session="false" %>
<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:choose>
<c:when test="${ fn:contains(header['User-Agent'], 'Android') or
fn:contains(header['User-Agent'], 'iPhone') or
fn:contains(header['User-Agent'], 'iPod')
}">
<cms:include page="/templateMobile.jsp" />
</c:when>
<c:otherwise>
<cms:include page="/templateFull.jsp" />
</c:otherwise>
</c:choose>