当前位置: 首页 > Web前端 > vue.js

django+vue+nginx+frp搭建手机端自动切换漫画网站(一)

时间:2023-03-31 22:39:09 vue.js

django+vue+nginx+frp搭建手机端自动切换漫画网站(一)地址:http://www.iewoai.com/backgroundimage1.背景漫画网站电脑端项目目前采用django模板语言搭建,手机端项目采用vue编写。当你想在移动PC之间自动切换时,一种方法是使用nginx判断请求头并重定向到指定的服务。2、步骤:在手机服务器上添加配置:if($http_user_agent~*(mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)){rewrite^(.*)http://comic.tklb.top$1redirect;}rewrite参数:image.png电脑配置:if($http_user_agent!~*(mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)){rewrite^(.*)http://m.comic.tklb.top$1permanent;}三、问题1、全局切换错误的问题:移动端界面报错,移动端host为电脑端hostimage\_1.pngimage\_2。png解决方案:接口地址是电脑端的域名,在全局切换的情况下,接口地址变成手机的域名,会报错,所以决定不考虑全局切换。2.nginx条件判断错误的问题:只在首页判断,同时判断主域名uri和是否是手机请求头报错如下:image\_3.pnginx配置不支持逻辑和&&逻辑或||操作,并且不支持if的嵌套语法,否则会报如下错误:nginx:[emerg]invalidconditionimage\_4.png解决方法:#方法一set$flag0;if($http_user_agent!~*(mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)){set$flag"${flag}1";}if($request_uri="/"){set$flag"${flag}1";}if($flag="011"){rewrite"/"http://comic.tklb.top/break;}#方法二location=/{if($http_user_agent!~*(mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)){重写“/”http://comic.tklb.top/break;}}4.其他1.2021-07-09之前详情页跳转需求,以及Vue之后的页面已经使用去掉首页开关,目前也需要实现详情页跳转(问题是手机端的page页面还没有实现,暂时需要用电脑端的page页面代替,手机端的page页面应该返回手机端的详情,返回按钮地址为计算机端的详细信息)。电脑详情页:http://comic.tklb.top/585b257...\_c/手机详情页:http://m.comic.tklb.top/#/dat...步骤:1.如果($request_uri~*^/(.*?)_c/$){set$flag"${flag}2";}if($flag="012"){重写"^/(.*?)_c/$"http://m.comic.tklb.top/#/detail?id=$1break;}2.设置if($request_uri~*^/#/datail?idinthemobileserver)=(.*?)$){set$flag"${flag}2";}if($flag="012"){重写"^/#/detail?id=(.*?)$"http://comic.tklb.top/$1_c/break;}注:由于下图的特点,且移动端是vue单页,路由中保留了#,目前决定不去掉#转成多页,所以手机上的服务器设置无效image\_5.png2,uri和request_uri的区别$uri指的是请求的文件和路径,不包括?or#$request_uri指的是请求的整个字符串,包括比如后面请求的东西:$uri:www.baidu.com/document$request_uri:www.baidu.com/document?x=1参考资料:1.https://www.cnblogs.com/brian...2.https://blog.csdn.net/weixin\_43228360/article/details/1053239403.https://www.cnblogs.com/aaa10...4.Nginx配置网站适配PC和手机https://xxxxg.blog.csdn.net/a...5.检测手机浏览器|开源手机检测http://detectmobilebrowsers.com/6.nginx定位,rewri使用总结https://www.cnblogs.com/dadon...