django一个site对应一个应用和域名,手机版再弄个应用没这个必要
有什么办法,可以提高手机版建设效率呢?
我目前的做法是,把两个域名都绑定到同一个ip,分别做电脑版、手机版的模板。
让中间件判断域名是否有m.,如果包含m.就设置一个cookie代表现在是手机访问,模板就读取手机版模板,反之读取电脑版模板
现在会出现一个问题,就是有时候缓存失效后,访问手机版首页模板是电脑版的首页。
class SubdomainMiddleware(object):
def process_request(self, request):
response = None
domain_parts = request.get_host().split('.')
if len(domain_parts) == 3 and domain_parts[0] == 'm':
if request.COOKIES.get('themes')=='default':
request.COOKIES['themes'] = 'mobile'
return response
def process_response(self, request, response):
domain_parts = request.get_host().split('.')
if len(domain_parts) == 3 and domain_parts[0] == 'm':
response.set_cookie('themes', 'mobile')
else:
if request.COOKIES.get('themes')=='mobile':
response.set_cookie('themes', 'default')
return response
我用的是在views中判断UA,模板我也有两套。返回数据的时候,根据UA的判断结果来决定使用哪一套模板。