用”AMP“写网页的时候,遇到的那些坑

2,247 阅读3分钟

前言

其实刚开始去写AMP页面,感觉和html页面没什么区别的...,但后面发现是我小瞧了。

在开发过程中踩过许多的坑,然后去百度呢,也找不到相关的答案,因为AMP国内用的挺少的,只有翻墙寻找答案,那时候是真的挺难受的,碰到一个报错都不知道咋回事...

这里我整理一下我遇到的问题,也是做一下笔记,后续也会继续的更新它,感觉,AMP的坑我还没踩完...

发一下AMP的官网,之前我找这个官网都找了好久...哈哈

amp.dev/zh_cn/

其实官网里面很多都有介绍,这些报错,官网里面都有说,只不过说的不是报错提醒,而是说限制使用这些语法,刚开始开发,没有注意到这些,然后后面就一直在找报错的原因,所有就导致前面上手难,但搞明白了就简单了。

AMP的问题总结

第一:首先是页面架构,和html有一点点区别

<!doctype html>
<html amp lang="en">
  <head>
    <meta charset="utf-8">
    <script async src="https://cdn.ampproject.org/v0.js"></script>
    <title>Hello, AMPs</title>
    <link rel="canonical" href="https://amp.dev/zh_cn/documentation/guides-and-tutorials/start/create/basic_markup/">
    <meta name="viewport" content="width=device-width">
    <script type="application/ld+json">
      {
        "@context": "http://schema.org",
        "@type": "NewsArticle",
        "headline": "Open-source framework for publishing content",
        "datePublished": "2015-10-07T12:02:41Z",
        "image": [
          "logo.jpg"
        ]
      }
    </script>
    <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
  </head>
  <body>
    <h1>Welcome to the mobile web</h1>
  </body>
</html>

1657189270406.jpg 以上这些都是html页面转化为AMP页面必须要的

这里有一个特别需要注意的地方,写AMP页面之前一定要装一个插件

image.png

在谷歌的扩展程序里面就可以安装,不过好像需要翻墙 (这个特别重要,因为只有装这个这样插件,才能更好的看到这个页面是不是AMP页面,以及是不是符合AMP页面的标准,都可以很清楚的看到)

注意,图标是灰色的,就表示这边网页不是AMP的,如果变红则就是有报错,如果是绿色的,那么这个页面就是符合AMP标准的,如下

image.png

第二:页面报错汇总

1.外部链接加载(包括不能使用js,以及所有的js插件或者jq插件)

这里也有一个注意的地方,就是AMP好像是支持了一些js的方法的,不过限制很多,只有很少的部分有支持

image.png

上面这个是AMP的写法,有很多的例子,这个你们可以去官网看看具体的操作

image.png

一般AMP页面都是搭在后端一起写的,不然就会出来很多限制,比如说,上面的报错,提示不能出现外链,也就是说不能加载外部的css

image.png 这样加载都是会报错的!

那么要想写css怎么办呢,两种方法,

第一种,在本页面写,

第二种

image.png 用PHP的封装的写法,去加载css,这种是可以的,比如说公共的header和footer页面也是可以这样加载的

2.css报错

image.png

上面的报错提示不能使用 !important 属性,一定不要使用 !important,这在AMP中是不支持的

image.png

上面的报错提示不能使用以amp-name的形式去进行css命名

image.png 这些都是AMP所限制的

3.所有使用AMP的一些组件和方法,都要引用AMP的js

image.png

注意,如果你有使用,请加AMP的js,但如果你页面没有使用到这个组件,那么一定要删除掉,不然也会报错

使用AMP框架编写页面会有什么好处呢

第一,就是网站速度加载快了,基本都会控制在700毫秒到800毫秒之间

第二,谷歌网站测试性能指标会上去

image.png

这个是我做的amp网页的各项指标

第三,这个AMP框架是谷歌和Twitter开发的一款开源框架(也就是谷歌支持的,可能会利于网站的排名权重)

总结

以上就是本篇文章的全部内容,希望对大家的学习有所帮助,以上就是关于用“AMP”写网页的时候,遇到的一些问题的详细介绍,最后我会继续的去更新它,也希望大家能提出宝贵的意见。