我有以下代码。 我正在Android 67下的Chrome 8.1中加载它。 我正在从两个站点加载相同的代码。 一个URL看起来像这样,由Apache提供:
https://my.site/vtest.html
第二个看起来像这样,由快递提供.js:
http://my.site:8081/vtest.html
在这两种情况下,将提供相同的静态 HTML 页面:
<!doctype html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, height=device-height initial-scale=1 user-scalable=no">
<meta name="mobile-web-app-capable" content="yes">
<title>Viewport Test</title>
</head>
<body>
<H1>Viewport Test</H1>
</body>
</html>
第一个网站有效:页面始终具有相同的缩放比例,我无法放大和缩小。 第二页没有 - 我能够放大和缩小,当我重新加载页面时,它会记住当前的缩放级别(而不是根据initial-scale
指令将其重置为 1(。
我修改了 Apache 网站以从 http 而不是 https 提供服务,它仍然有效! 它将 Apache 站点从端口 8081 而不是 80 修改为服务器,它仍然有效! 所以我能看到的唯一区别是,一个是由 Apache 提供的服务器,一个是由 express.js 提供的。
但是,当我使用 Chrome 开发者工具检查页面上的 HTML 时,它与 HTML 相同。 当我检查网络请求以获取页面时,响应标头中存在一些细微差异,但我看不到任何会导致快速.js服务页面导致浏览器忽略元视口标记的内容。
我试图解决这个问题,但我没有想法了。 这到底是怎么回事?
这与页面的服务器无关。 如果您的移动浏览器在选项菜单下选中了"桌面站点"选项(通常在右上角的三个点(,就会发生这种情况。