惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
Microsoft Azure Blog
Microsoft Azure Blog
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Hacker News - Newest:
Hacker News - Newest: "LLM"
Cyberwarzone
Cyberwarzone
Recorded Future
Recorded Future
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Threat Research - Cisco Blogs
Know Your Adversary
Know Your Adversary
Recent Announcements
Recent Announcements
L
LINUX DO - 热门话题
D
DataBreaches.Net
K
Kaspersky official blog
T
Threatpost
F
Full Disclosure
T
The Exploit Database - CXSecurity.com
C
CERT Recently Published Vulnerability Notes
S
Securelist
I
Intezer
有赞技术团队
有赞技术团队
罗磊的独立博客
爱范儿
爱范儿
S
Schneier on Security
P
Privacy & Cybersecurity Law Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
L
LangChain Blog
美团技术团队
G
Google Developers Blog
T
Tor Project blog
Project Zero
Project Zero
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Hacker News
The Hacker News
W
WeLiveSecurity
Engineering at Meta
Engineering at Meta
Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
PCI Perspectives
PCI Perspectives
L
LINUX DO - 最新话题
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
T
Troy Hunt's Blog

元视角

.NET 生态下的 Agent 框架选型:从 ReAct 到原生推理 - 元视角 从「能用」到「好用」:LLM 流式响应实现方式的探索之路 - 元视角 当我用 2000 条聊天记录,让 AI 为我画一幅自画像 - 元视角 基于 Supabase 的 AI 应用开发探索 - 元视角 微博 × MCP:社交媒体新玩法解锁 - 元视角 四点钟海棠花未眠 - 元视角 Semantic Kernel × MCP:智能体的上下文增强探索 - 元视角 基于 K-Means 聚类分析实现人脸照片的快速分类 - 元视角 容器技术驱动下的代码沙箱实践与思考 - 元视角 温故而知新:后端通用查询方案的再思考 - 元视角 浅议 CancellationToken 在前后端协同取消场景中的应用 - 元视角 Semantic Kernel 视角下的 Text2SQL 实践与思考 - 元视角 关于 ChatGPT 的流式传输,你需要知道的一切 - 元视角 RAG 的是与非、Rewrite 和 Rerank - 元视角 使用 EFCore 和 PostgreSQL 实现向量存储及检索 - 元视角 基于 LLaMA 和 LangChain 实践本地 AI 知识库 - 元视角 使用 llama.cpp 在本地部署 AI 大模型的一次尝试 - 元视角 如何为 Git 配置多个 SSH Key - 元视角 C# 使用 LibUsbDotNet 实现 USB 设备检测 - 元视角 基于 C# 实现样式与数据分离的打印方案 - 元视角 基于 SVG 的图形交互方案实践 - 元视角 前端视频播放技术概览 - 元视角 温故而知新,再话 Python 动态导入 - 元视角 后 GPT 时代,NLP 不存在了? - 元视角 视频是不能 P 的系列:使用 Milvus 实现海量人脸快速检索 - 元视角 GDI+下字体大小自适应方案初探 - 元视角 小爱音箱集成 ChatGPT 的不完全教程 - 元视角 程序员视角下的三体世界随想 - 元视角 关于 Docker 容器配置信息的渐进式思考 - 元视角 在 Docker 容器内集成 Crontab 定时任务 - 元视角 为你的服务器集成 LDAP 认证 - 元视角 似花还似非花 - 元视角 视频是不能 P 的系列:使用 Dlib 实现人脸识别 - 元视角 浅议分布式链路追踪与日志的整合 - 元视角 关于 Git 大文件上传这件小事 - 元视角 .NET 进程内队列 Channel 的入门与应用 - 元视角 使用 Fody 实现 .NET 的静态编织 - 元视角 .NET Core + ELK 搭建可视化日志分析平台(下) - 元视角 聊一聊前端图片懒加载背后的故事 - 元视角 支持外部链接跳转的 Vue Router 扩展实现 - 元视角 视频是不能 P 的系列:OpenCV 和 Dlib 实现表情包 - 元视角 不得不说的 ASP.NET Core 集成测试 - 元视角 再议 DDD 视角下的 EFCore 与 领域事件 - 元视角 Vue.js 前端项目容器化部署实践极简教程 - 元视角 再见,人间四月天 - 元视角 Python 图像风格化迁移助力画家梦想 - 元视角 利用 ASP.NET Core 中的标头传播实现分布式链路追踪 - 元视角 利用 gRPC 实现文件的上传与下载 - 元视角 七种武器:延迟队列的原理和实现总结 - 元视角 gRPC 流式传输极简入门指南 - 元视角 Envoy 集成 Jaeger 实现分布式链路追踪 - 元视角 浅议非典型 Web 应用场景下的身份认证 - 元视角 gRPC 借助 Any 类型实现接口的泛化调用 - 元视角 分布式丛林探险系列之 Redis 集群模式 - 元视角 分布式丛林探险系列之 Redis 主从复制模式 - 元视角 通过 Python 预测 2021 年双十一交易额 - 元视角 gRPC 搭配 Swagger 实现微服务文档化 - 元视角 SSL/TLS 加密传输与数字证书的前世今生 - 元视角 使用 Python 自动识别防疫健康码 - 元视角 你不可不知的容器编排进阶技巧 - 元视角 ASP.NET Core 搭载 Envoy 实现 gRPC 服务代理 - 元视角 再话 AOP,从简化缓存操作说起 - 元视角 ASP.NET Core 搭载 Envoy 实现微服务身份认证(JWT) - 元视角 ASP.NET Core 搭载 Envoy 实现微服务的监控预警 - 元视角 ASP.NET Core 搭载 Envoy 实现微服务的反向代理 - 元视角 ASP.NET Core gRPC 打通前端世界的尝试 - 元视角 EFCore 实体命名约定库:EFCore.NamingConventions - 元视角 ASP.NET Core gRPC 集成 Polly 实现优雅重试 - 元视角 ASP.NET Core gRPC 健康检查的探索与实现 - 元视角 ASP.NET Core gRPC 拦截器的使用技巧分享 - 元视角 SnowNLP 使用自定义语料进行模型训练 - 元视角 使用 HttpMessageHandler 实现 HttpClient 请求管道自定义 - 元视角 ABP vNext 的实体与服务扩展技巧分享 - 元视角 ABP vNext 对接 Ant Design Vue 实现分页查询 - 元视角 源代码探案系列之 .NET Core 跨域中间件 CORS - 元视角 源代码探案系列之 .NET Core 限流中间件 AspNetCoreRateLimit - 元视角 源代码探案系列之 .NET Core 并发限制中间件 ConcurrencyLimiter - 元视角 通过 EmbededFileProvider 实现 Blazor 的静态文件访问 - 元视角 低代码,想说爱你不容易 - 元视角 记一次失败的 ThoughtWorks 面试经历 - 元视角 从 C# 1.0 到 C# 9.0,历代 C# 语言特性一览 - 元视角 通过 Python 分析 2020 年全年微博热搜数据 - 元视角 基于 Python 和 Selenium 实现 CSDN 一键三连自动化 - 元视角 使用多线程为你的 Python 爬虫提速的 N 种姿势,你会几种? - 元视角 实现网页长截图的常见思路总结 - 元视角 温故而知新,由 ADO.NET 与 Dapper 所联想到的 - 元视角 视频是不能 P 的系列:OpenCV 人脸检测 - 元视角 作为技术宅的我,是这样追鬼滅の刃的 - 元视角 使用 Python 抽取《半泽直树》原著小说人物关系 - 元视角 厉害了!打工人用 Python 分析西安市职位信息 - 元视角 使用 dotTrace 对 .NET 应用进行性能分析与优化 - 元视角 一道 HashSet 面试题引发的蝴蝶效应 - 元视角 基于选项模式实现.NET Core 的配置热更新 - 元视角 Dapper.Contrib 在 Oracle 环境下引发 ORA-00928 异常问题的解决 - 元视角 .NET Core 中对象池(Object Pool)的使用 - 元视角 利用 MySQL 的 Binlog 实现数据同步与订阅(下):EventBus 篇 - 元视角 利用 MySQL 的 Binlog 实现数据同步与订阅(中):RabbitMQ 篇 - 元视角 利用 MySQL 的 Binlog 实现数据同步与订阅(上):基础篇 - 元视角 记一次从已损坏的 Git 仓库中找回代码的经历 - 元视角 .NET Core 原生 DI 扩展之属性注入实现 - 元视角
扫描二维码在移动设备上浏览响应式页面 - 元视角
飞鸿踏雪 · 2016-05-01 · via 元视角

最近想尝试对一个 Ghost 博客主题进行移植,因为对一个后端程序员来说,进行前端方面的工作实在是个不小的挑战,而我对 CSS 更是有种与生俱来的恐惧感,所以我是非常喜欢BootstrapMaterilize这种对后端程序员友好的前端框架。现在前端技术如火如荼,而前端技术作为最有可能实现跨平台技术的技术形态,相对原生技术有着更为灵活的适应性和扩展性,因此以响应式设计为代表的 Web 技术,能够让 Web 页面在不同尺寸屏幕上都有着相近的体验,因为目前软件开发基本都是在计算机设备上来完成的,这样我们在制作 Web 页面的时候就需要在不同的设备上进行调试,如果每次都将 Web 页面部署到远程服务器上,这样将浪费大量的时间而且容易将测试阶段的问题暴露给用户,因此本文将采用一种扫描二维码的方式来实现在移动设备上浏览响应式页面。

工作原理

因为我们这里是在测试阶段在不同的移动设备上浏览响应式页面,所以这些 Web 页面实际上是部署在本地服务器上的,因此这个问题的实质就是如何让移动设备访问本地服务器,这个问题无论从原理上还是实现上来讲都不复杂,只要保证运行本地服务器的计算机和移动设备在同一个局域网内就可以了,考虑到移动设备的便携性,采用无线局域网的方式对移动设备更为友好。我们知道 Windows 系统,从 Windows7 版本以后就可以支持虚拟热点的创建,因此可以说是近水楼台啦!在这种情况下,理论上我们可以直接使用运行本地服务器的计算机的 IP 来访问本地服务器,可是因为不同的服务器软件配置不同以及不同的计算机设置不同等等外部性的因素,在实际操作的过程中依然存在各种问题,下面我们就来针对实际操作中需要注意和解决的问题,来说说具体的实现过程。

实现过程

考虑到实际操作中的配置项目主要由计算机设置和服务器设置两部分组成,因此我们这里对这两部分各自进行详细说明。 ##计算机设置

  • 热点的创建

1、创建一个名称为 QRPager-WIFI 的无线网络,其密码为 88888888

netsh wlan set hostednetwork ssid=QRPager-WIFI key=88888888

2、开启网络热点确保其它设备可以访问这个热点

netsh wlan start hostednetwork

3、关闭网络热点

netsh wlan stop hostednetwork
  • 防火墙设置

防火墙设置非常简单,因为关闭防火墙就好啦,这样可以保证其它设备能够正常访问本地服务器,在测试完页面后应该立即开启防火墙,这个世界可谓是充满了诱惑,有诱惑的地方就有危险,所以当我们通过互联网获取知识的同时,更为重要的一点是学会如何去甄别信息的真伪,魏则西事件让我们每一个人都感到痛心,可我们必须认识到,即使百度在你我的口诛笔伐中宣告破产,对这个世界的影响永远都是杯水车薪,所以无论是杀毒软件还是防火墙,任何形式的东西都不能代替你保护自我的意识,就像在地震、火灾这类破坏性灾难中,学会自救互救比等待公共救援更为有效。

服务器设置

  • IIS 设置

IIS 设置起来非常简单,只要在网站“绑定”设置中设置本地服务器所在计算机的 IP 地址即可,这样做的目的是保证服务器可以使用除了 127.0.0.1 和 localhost 以外地址来访问,因为我们在手机上访问本地服务器的时候,需要指定本地服务器所在计算机的 IP。

  • Apache 设置

Apache 设置相对 Geek,因为我们都知道它需要去编辑 httpd.conf 这个文件来开启或者关闭特定功能。但在这里它并不会显得复杂,因为和 IIS 一样,我们要进行的修改是让 Apache 可以通过除 localhost 以外的地址进行访问。在该文件中找到下列片段:

<Directory "D:/Program Files/WAMP/www/">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride all

    #
    # Controls who can get stuff from this server.
    #

#   onlineoffline tag - don't remove
    Order Deny,Allow
    Allow from all #将这里由"Deny from all"修改为"Allow from all"
    Allow from 127.0.0.1

</Directory>

将第 29 行代码由"Deny from all"修改为"Allow from all"即可,这样就可以给其它设备访问本地服务器的权限,至此,这个问题得以成功解决。

总结

这篇文章无论从需求还是实现上来讲都是非常简单的,我之所以想写这篇文章,更多的是希望帮助大家克服这些“非技术性”的问题,因为有时候阻碍我们的可能并非问题本身,而是因为一个微不足道的部分,就像我们无法使用 Google 并非是因为 Google 使用起来有多么的困难,而是因为一道技术含量非常低的防火墙,在开发中除了我们使用的编程语言,任何开发工具、部署工具都可能出现这种问题,所以除了技术本身以外,关注这些“非技术性”因素同样是非常重要的一件事情。在这个设计中,有一个问题,即用户连接到无线网络是一个手动去完成的行为,换言之在扫描二维码前用户必须首先连接到无线网络。这样让我感觉显得不够优雅,我一直在思考有没有一种方法可以通过扫描二维码,直接建立移动设备到本地服务器的连接,可是二维码保存的是普通的文本信息,除非我能够通过二维码去调用 Android 系统中的 Intent,否则这个过程是没有办法实现自动化的,一个更好的想法是在 PC 端生成二维码图片,在手机端通过编写二维码应用来实现两者间的 Socket 通信,而通信的细节如 IP 地址、端口号等则可以通过二维码来进行加密和解密。