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

一、CSS & JS

在Shopify中,通常建议将CSS和JavaScript文件引用放在主题的布局文件中,而不是单独的页面或区块中。这样做主要有两个原因:
  1. 性能:将CSS和JavaScript文件放在布局文件中,可以避免在用户浏览你的商店的不同页面时重复加载这些文件。大多数浏览器会自动缓存这些文件,所以只要用户访问过你的商店的任何一个页面,他们就不需要再次下载这些文件。
  1. 维护:将所有的CSS和JavaScript文件放在一个地方,可以使你的代码更易于管理和维护。当你需要修改你的样式或脚本时,你只需要查看一个文件,而不是在你的全部代码中寻找。
要在Shopify中引用CSS和JavaScript文件,你可以将它们上传到你的主题的"Assets"目录中,然后在你的布局文件(如 theme.liquid)的<head>部分(对于CSS)或者<body>部分的底部(对于JavaScript)引用它们,像这样:
 
然而,在某些情况下,你可能需要在页面或区块中添加一些特定的CSS或JavaScript代码。例如,如果你有一个只在某个页面中使用的轮播插件,你可能需要在该页面的模板中引用相关的JavaScript文件。但在这种情况下,你应该尽量确保这些代码尽可能的精简和优化,以避免影响页面的加载速度。
 

二、图标 & 图片资源

1. 图标处理:
  • 如果你使用的是常见的图标(例如社交媒体图标),你可以使用像Font Awesome这样的图标字体库。你只需将相应的CSS文件链接到你的主题,然后在HTML中使用特定的类来显示图标。
  • 如果你有一组自定义的图标,你可以考虑使用SVG图标或图标字体。对于SVG图标,你可以直接将SVG代码复制到你的HTML中。对于图标字体,你可能需要使用一些工具(例如IcoMoon)来创建你的字体文件,然后将它们上传到你的主题资产。
  • 你也可以将图标作为图片上传,并在需要的地方使用img标签引用它们,但这可能会增加你的页面加载时间,特别是当你有很多图标时。
2. 图片处理:
  • 对于需要动态更改的图片(例如产品图片或轮播图片),你应该使用Shopify的image_picker设置类型,这样商店所有者可以在主题编辑器中选择他们想要显示的图片。你可以在你的Liquid代码中使用{{ section.settings.image_setting_id | img_url: 'size' }}来获取图片的URL,其中image_setting_id是你在schema中定义的设置的ID,size是你想要的图片大小。
  • 对于静态图片(例如背景图片或装饰图片),你可以直接将它们上传到你的主题资产,然后在你的CSS或HTML中引用它们。
  • 对于响应式设计,你可能需要为不同设备提供不同大小的图片。你可以使用Shopify的img_url过滤器的尺寸参数来获取不同大小的图片,然后使用CSS媒体查询来选择适合每个设备的图片。
  • 记住,所有的图片都应该经过适当的优化,以减少文件大小并提高页面加载速度。你可以使用像TinyPNG这样的工具来压缩你的图片,或者使用像Squoosh这样的工具来改变图片的格式。
最后,不论是图标还是图片,你都应该为它们提供适当的alt属性,以提高网站的可访问性和搜索引擎优化。
 

响应式图片显示实践

对于Shopify中的img_url过滤器,你可以使用它来改变图片的大小。Shopify支持的图片尺寸可以从16x16px到2048x2048px。你可以这样使用img_url过滤器:
在这个例子中,'500x500'是你指定的尺寸参数,它将图片的大小改变到500px x 500px。注意这个过滤器会保持图片的原始纵横比,所以实际的尺寸可能会有所不同。
现在,如果你想根据不同的设备尺寸提供不同的图片大小,你可以使用CSS媒体查询配合HTML的<picture>元素来实现。例如:
在这个例子中,对于宽度小于或等于600px的设备,浏览器将加载500x500大小的图片。对于宽度大于600px的设备,浏览器将加载1000x1000大小的图片。
注意:上述代码应放在商品图片相关的Liquid模板中,例如product.liquid或collection.liquid。其中image应根据实际情况替换为相应的图片对象,如product.featured_imageproduct.images[n]等。