由express.js提供服务时,HTML元视口标记被忽略

时间:2018-06-20 23:10:48

标签: javascript express mobile

我有以下代码。我正在Android 8.1下的Chrome 67中加载它。我正在从两个站点加载相同的代码。一个网址如下所示,由Apache提供:

https://my.site/vtest.html

第二个看起来像这样,由express.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。当我检查获取页面的网络请求时,响应头中有一些细微的差别,但是我什么也看不到,这会导致express.js服务页面导致浏览器忽略元视口标签。

我已经尝试解决此问题,但是我的想法已用尽。这可能是怎么回事?

1 个答案:

答案 0 :(得分:0)

这与页面如何作为服务器无关。如果您的移动浏览器在选项菜单下选中了“桌面站点”选项(通常在右上角为三个点),则会发生这种情况。