Shopify专题
Liquid页面引用到静态文件
00 分钟
2022-11-6
2025-1-16
type
status
date
slug
summary
tags
category
icon
password

一、CSS 与 JavaScript 管理

在 Shopify 中,建议将 CSS 和 JavaScript 文件的引用集中在主题的布局文件中,而不是分散在单独的页面或区块中。这样做的主要原因有两个:
  1. 性能提升:将 CSS 和 JavaScript 文件放在布局文件中,可以避免用户在浏览不同页面时重复加载这些文件。大多数浏览器会自动缓存这些文件,因此用户在访问商店的其他页面时,无需重新下载。
  1. 便于维护:集中管理 CSS 和 JavaScript 文件,使代码更易于维护。当需要修改样式或脚本时,只需查看一个文件,而无需在整个代码中查找。

引用 CSS 和 JavaScript 文件

在 Shopify 中引用 CSS 和 JavaScript 文件的方法如下:
  • 将文件上传到主题的 Assets 目录。
  • 在布局文件(如 theme.liquid)的 <head> 部分引用 CSS,在 <body> 底部引用 JavaScript:

最佳实践

  • 使用分号:在 CSS 中,每条声明后应加分号,即使是最后一条,以保持一致性。
  • 命名规范:采用 BEM(块、元素、修饰符)命名法,使类名更具可读性。例如:.block__element--modifier
  • 属性声明顺序:建议按以下顺序排列 CSS 属性:布局、位置、尺寸、背景、边框、文本、其他。这样可以提高可读性。
  • 选择器优化:尽量避免使用过于复杂的选择器,保持选择器简洁高效,避免影响性能。
  • 响应式设计:使用 CSS 媒体查询为不同屏幕尺寸提供适配样式,确保网站在各种设备上表现良好。

特定情况处理

在某些情况下,可能需要在特定页面或区块中添加 CSS 或 JavaScript 代码。例如,使用特定的轮播插件时,可以在该页面的模板中引用相关文件。确保这些代码尽量精简和优化,以免影响加载速度。

二、图标与图片资源管理

1. 图标处理

  • 使用图标库:对于常见图标(如社交媒体图标),建议使用 Font Awesome 等图标字体库。只需将相应的 CSS 文件链接到主题,并使用特定类在 HTML 中显示图标。
  • 自定义图标:如果有自定义图标,可以使用 SVG 或图标字体。SVG 图标可以直接嵌入 HTML,而图标字体则需使用工具(如 IcoMoon)创建并上传。
  • 图标作为图片:虽然可以将图标作为图片上传并使用 <img> 标签引用,但这可能会增加页面加载时间,尤其是图标数量较多时。

2. 图片处理

  • 动态图片:对于动态更改的图片(如产品或轮播图片),使用 Shopify 的 image_picker 设置类型,允许商店所有者在主题编辑器中选择图片。使用以下 Liquid 代码获取图片 URL:
    • 静态图片:静态图片(如背景或装饰图片)应直接上传到主题资产,并在 CSS 或 HTML 中引用。
    • 响应式设计:为不同设备提供不同大小的图片。使用 Shopify 的 img_url 过滤器获取不同尺寸,并结合 CSS 媒体查询选择适合的图片。
    • 图片优化:所有图片都应经过优化,以减少文件大小,提高加载速度。可使用 TinyPNG 等工具进行压缩,或使用 Squoosh 改变图片格式。

    响应式图片显示实践

    使用 Shopify 的 img_url 过滤器调整图片大小,支持从 16x16px 到 2048x2048px 的尺寸。例如:
    若要根据设备尺寸提供不同的图片大小,可使用 CSS 媒体查询和 <picture> 元素:
    在此示例中,对于宽度小于或等于 600px 的设备,加载 500x500 的图片;对于宽度大于 600px 的设备,加载 1000x1000 的图片。
    注意:上述代码应放在与商品图片相关的 Liquid 模板中(如 product.liquid 或 collection.liquid),其中 image 应根据实际情况替换为相应的图片对象,如 product.featured_image 或 product.images[n]。

    3. 可访问性与 SEO

    无论是图标还是图片,都应为它们提供适当的 alt 属性,以提高网站的可访问性和搜索引擎优化。确保 alt 属性描述性强,能准确传达图像内容。