2014-10-27 22 views

回答

3

通过使用前端响应式框架(如Bootstrap或Fination),您可以为多个屏幕创建单个Django项目。

-1

User-Agent通过,显示大小等 例如:

if ($http_user_agent ~* '(blackberry|blazer|danger|ericsson| 
     Google\s+Wireless\s+Transcoder|htc|iemobile|ipaq|iphone|ipod|lg|mobile| 
     mot|moto|motorola|nec\-|netfront|netfront|nokia|opera\s+mini|palm| 
     palmsource|panasonic|philips|pocketpc|samsung|sanyo|sec|sharp|sie\-| 
     smartphone|sony|symbian|t\-mobile|untrusted|up\.browser|up\.link| 
     vodafone\/|wap1\.|wap2\.|webOS|windows\s+ce)') { 
     set $mobile on; 
    } 

here摘自:

0

最简单的方法是将包括django的移动包。比试图保留你自己的用户代理列表也做出响应要容易得多。 https://pypi.python.org/pypi/django-mobile

+0

我觉得不需要外部包做简单的事情。最好使用@soerium解决方案 – 2014-10-28 00:05:00

+0

@DavidW。像Bootstrap这样的前端响应式框架对于缩放布局内容很有意义,但是如果您的内容包含图片,则您会加载完整大小的图片并将其缩小(浪费带宽并增加加载时间),或者取决于标签尚未得到很好的支持。无论哪种方式,大多数前端解决方案将对搜索引擎优化产生负面影响。 – 2014-10-28 11:12:41

+0

CSS Media Queries(在引导程序中)解决了这个问题,因为它们可以防止在最近的浏览器中无用的资源下载。 (请参阅:http://stackoverflow.com/a/16668355/2255491) – 2014-10-28 12:49:37

0

通常情况下,您不会向移动设备提供其他网站。相反,您使用CSS技术(如@media queries)根据浏览器的大小更改页面的布局。

这被称为“响应式网页设计”(如果这使得它更容易搜索),并且具有不需要维护同一页面的多个副本的优点,仅针对不同的设备。此外,通过应用基于屏幕大小(而不是设备用户代理)的规则,您可以在用户更改窗口大小时更改页面布局 - 例如在桌面上并排捕捉窗口,或者在移动设备上从横向切换到纵向。而且,只需调整浏览器大小即可测试不同大小的网站 - 无需重新加载甚至使用Chrome设备模拟器进行大部分布局测试。

通过使用像Bootstrap这样的框架,您甚至可以在没有真正理解CSS的情况下使用响应式网页设计。

1

我不知道Django的,但我认为你就可以通过添加以下内容到<head>部分来完成这个

<script type="text/javascript"> 
    <!-- 
    if (screen.width <= 800) { 
    window.location = "http://m.domain.com"; 
    } 
    //--> 
</script> 
相关问题