【问题标题】:Creating AMP page in Gatsby using gatsby-plugin-google-amp but pulling in all site styles使用 gatsby-plugin-google-amp 在 Gatsby 中创建 AMP 页面,但会引入所有网站样式
【发布时间】:2020-07-31 13:14:31
【问题描述】:

我很欣赏该插件不再以当前形式 (https://www.gatsbyjs.org/packages/gatsby-plugin-google-amp/?=Amp) 维护,但希望以此为基础将 AMP 页面添加到我的网站。我已经很好地安装了插件,并且能够创建所需页面的 AMP 版本。

但是,每当我尝试导入 CSS 文件或模块时,我的整个网站的所有样式都会自动添加到页面之前(从而使 AMP 页面无效)。我怎样才能只导入一个样式表?我已经尝试过使用 CSS 模块,但没有任何乐趣:

import React from "react"
import { graphql } from "gatsby"
import ampStyles from "../assets/css/amp.module.css"

没有 css 导入页面验证正常。我只想导入一个包含我们有限的 AMP 样式的样式表。最好的方法是什么?非常感谢任何帮助。

【问题讨论】:

    标签: gatsby amp-html gatsby-plugin


    【解决方案1】:

    我之前没有构建过 AMP 应用,所以我不是 100% 肯定这将适用于您,但您应该能够在应用的顶层导入样式表,并且它下的所有组件都应该继承样式。

    另一种选择可能是使用 styled-components 库(在 Gatsby 中工作),因此您只需将组件所需的样式包含在 JSX/TSX 中。

    【讨论】:

    • 感谢您的评论,但继承正是我不想要的 - 我希望网站对所有模板使用继承的样式,除了我只想包含 AMP 样式表的 AMP 模板。我基本上想这样做是因为 CSS 权重而不是元素错误地继承了样式。出于这个原因,我认为 CSS 模块也没有帮助。
    • hmmm,我很抱歉,但我缺乏 AMP 经验可能会妨碍我提供帮助,但让我问一些澄清问题:1)您希望拥有站点的继承模型,但除外你的 AMP 模板? 2) 是您的 AMP 模板从其他元素继承 CSS 并导致您网站的 AMP 部分出现问题的问题吗?
    • 抱歉回复缓慢。要回答您的问题... (1) 是的 - 理想情况下,我们会在同一个站点内构建它,但 AMP 模板应该只包含该模板的 CSS,而不是整个站点的捆绑 CSS。我认为这曾经在 Gatsby 拆分 CSS 时起作用,但现在结合了网站的所有 CSS。 (2) 答案是一样的 - 问题是 AMP 模板将包含网站的所有 CSS,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多