AnQiCMS模板中,如何通过过滤器获取上传图片的不同尺寸缩略图地址?

📅 👁️ 66

在使用安企CMS(AnQiCMS)进行网站内容运营时,图片管理和优化是提升用户体验、加速页面加载速度以及改善SEO表现的关键一环。特别是在模板开发过程中,我们经常会遇到需要获取不同尺寸缩略图地址的需求。安企CMS以其简洁高效的设计理念,提供了一套直观的方式来处理这些问题。

今天我们就来深入探讨,在AnQiCMS的模板中,如何巧妙地运用内置的过滤器来获取我们上传图片的不同尺寸缩略图地址。

图片在 AnQiCMS 中的旅程:从上传到展示

在AnQiCMS中,无论是通过文档管理、分类管理还是图片资源库上传的图片,系统都会根据一套预设的规则进行处理。当我们上传一张原始图片时,AnQiCMS会智能地生成一个或多个版本的缩略图,以适应网站前端的各种展示需求。

这个“智能生成”的背后,离不开AnQiCMS后台的内容设置。您可以在后台的 后台设置 -> 内容设置 中找到 缩略图处理方式缩略图尺寸 等选项。在这里,您可以定义系统生成缩略图的默认宽度、高度以及裁剪模式(例如按最长边等比缩放、按最短边裁剪等)。这些设置决定了 thumb 过滤器在调用时所返回的缩略图的具体尺寸和外观。

举个例子,如果您的网站需要在一个小卡片中展示50x50像素的缩略图,而在详情页中需要展示200x200像素的图,您需要理解的是,thumb 过滤器默认会返回一套您在后台“内容设置”中配置好的标准缩略图尺寸。如果确实需要在服务器端生成多种固定尺寸的缩略图(例如同时需要50x50和200x200),AnQiCMS的 thumb 过滤器默认并不支持直接传入尺寸参数动态生成。它会提供您在后台配置的那个“标准缩略图”。不过,这并不意味着我们无法在前端实现不同尺寸的展示,更多是通过CSS进行灵活控制。

揭秘 thumb 过滤器:如何获取缩略图地址

AnQiCMS的模板引擎支持类似Django的语法,其中过滤器(Filters)是处理变量输出的强大工具。要获取上传图片的缩略图地址,我们需要用到 thumb 过滤器。

它的基本使用方法非常简洁:只需将图片字段作为变量,并通过管道符 | 连接 thumb 过滤器即可。

{{ 图片地址 | thumb }}

下面我们通过几个常见的场景来具体看看它的应用:

1. 获取文档、分类或单页的封面缩略图

在文档详情页、分类列表或单页内容中,我们经常会调用其封面图片(通常是 LogoThumb 字段)。这些字段本身存储的可能是原始图片地址,通过 thumb 过滤器,我们就能轻松获取到处理后的缩略图地址。

{# 获取当前文档的封面首图缩略图 #}
<img src="{{ archive.Logo | thumb }}" alt="{{ archive.Title }}" />

{# 获取当前分类的缩略图 #}
<img src="{{ category.Thumb | thumb }}" alt="{{ category.Title }}" />

{# 获取某个单页的封面缩略图 #}
{% pageDetail pageLogo with name="Logo" id="1" %}
<img src="{{ pageLogo | thumb }}" alt="单页标题" />

2. 处理组图中的每张图片

有些内容模型支持组图(例如 Images 字段),它会返回一个图片地址数组。这时,我们需要结合 for 循环来遍历每张图片,并对每张图片应用 thumb 过滤器。

{# 假设 archive.Images 是一个图片地址数组 #}
<div class="gallery">
    {% for imgUrl in archive.Images %}
        <img src="{{ imgUrl | thumb }}" alt="图片描述" />
    {% endfor %}
</div>

3. 获取其他模块(如 Banner)的图片缩略图

Banner通常也会有图片字段(如 item.Logo),同样可以使用 thumb 过滤器。

{% bannerList banners %}
    {% for item in banners %}
        <a href="{{item.Link}}" target="_blank">
            <img src="{{ item.Logo | thumb }}" alt="{{item.Alt}}" />
        </a>
    {% endfor %}
{% endbannerList %}

理解“不同尺寸”的实践

正如前文所提及,thumb 过滤器输出的缩略图地址,其具体尺寸是由后台“内容设置”中统一配置的。如果您的需求是在前端不同位置显示同一张图片的不同“视觉尺寸”,最推荐且灵活的方式是结合CSS样式来控制。

例如,您可以在CSS中为图片设置

相关文章

AnQiCMS `yesno` 过滤器如何用于在模板中根据布尔值显示“是”、“否”或“未知”状态?

在安企CMS的模板开发中,我们常常需要根据后台数据的布尔(真/假)状态,在前台页面以用户友好的方式显示不同的文字,例如“是”或“否”。直接显示 `true` 或 `false` 可能显得过于生硬,而编写复杂的 `if-else` 判断语句又会让模板代码显得冗长。幸运的是,AnQiCMS提供了一个简洁高效的解决方案——`yesno` 过滤器,它能帮助我们轻松地将布尔值转换为自定义的文本状态

2025-11-07

AnQiCMS `wordwrap` 过滤器如何实现长英文段落的智能自动换行?

在日常的内容运营中,我们常常会遇到这样的场景:发布的长篇英文段落,在不同设备或屏幕尺寸下显示时,可能会超出容器宽度,导致横向滚动条出现,极大影响用户的阅读体验和页面的美观度。安企CMS(AnQiCMS)深知这一痛点,为此提供了一个非常实用的模板过滤器——`wordwrap`,它能巧妙地解决长文本的自动换行问题。 ### `wordwrap` 过滤器:长文本的智能管家 `wordwrap`

2025-11-07

AnQiCMS `wordcount` 过滤器在处理中英混合文本时如何统计单词数量?

在安企CMS的模板设计中,`wordcount` 过滤器是一个用于统计文本中单词数量的实用工具。对于运营人员和内容创作者来说,了解其工作原理,尤其是在处理中英混合文本时的统计逻辑,能够帮助我们更准确地评估内容长度,优化文章结构,并更好地满足搜索引擎优化(SEO)和用户阅读体验的需求。 ### `wordcount` 过滤器的基本用法 `wordcount` 过滤器使用起来非常直接

2025-11-07

怎样在AnQiCMS模板中对URL查询参数进行URL编码以避免特殊字符冲突?

在AnQiCMS模板中构建动态链接时,我们经常需要将变量作为URL的查询参数传递。例如,一个搜索结果页可能需要将用户的搜索词作为参数;一个分类筛选页可能需要带上选定的分类ID或多个筛选条件。然而,这些动态内容中往往包含一些特殊字符,如空格、`&`、`?`、`=`、`/`、`#`等,它们在URL中具有特定的含义。如果不对这些特殊字符进行处理,浏览器或服务器就可能无法正确解析URL,导致页面报错

2025-11-07

如何确保AnQiCMS网站内容在不同设备上都能自适应显示?

随着移动互联网的普及,用户访问网站的设备种类日益多样化,从桌面电脑到平板电脑,再到各种尺寸的智能手机,网站内容能否在不同设备上流畅、美观地展现,已成为衡量一个网站质量的重要标准。安企CMS(AnQiCMS)在设计之初就充分考虑了这一需求,提供了灵活多样的方案,确保网站内容能够轻松实现多设备自适应显示。 ###

2025-11-07

AnQiCMS支持哪些前端显示模式来管理PC端和移动端网站?

在数字时代,无论访客使用电脑还是手机浏览您的网站,提供卓越的用户体验都至关重要。一个高效的内容管理系统,理应能够灵活应对这种多样化的显示需求。AnQiCMS 正是为此而设计,它提供了多种前端显示模式,让您可以根据实际业务需求,精细化管理PC端和移动端网站的展示效果。 AnQiCMS 在网站前端显示方面提供了三种主要的模式,每种模式都有其独特的优势和适用场景,帮助您构建适应不同设备的现代化网站

2025-11-07

如何在AnQiCMS中为文章(或其他内容)自定义显示布局和模板文件路径?

在AnQiCMS中,您网站内容的展现形式有着高度的灵活性。无论是文章、产品详情还是独立页面,您都可以根据品牌形象、内容特性或特定的运营需求,为它们量身定制显示布局和模板文件路径。AnQiCMS的这一设计理念,旨在帮助用户摆脱传统CMS的束缚,更自由地掌控网站的视觉呈现与用户体验。 ### 灵活的模板机制:AnQiCMS的基础 AnQiCMS采用了类似Django的模板引擎语法

2025-11-07

AnQiCMS的模板文件应如何组织和命名,以实现灵活的内容展示?

在使用AnQiCMS搭建网站时,模板文件的组织与命名是实现灵活内容展示,提高网站维护效率和可扩展性的关键环节。一个结构良好、命名清晰的模板体系,不仅能让您轻松驾驭各种内容类型,还能为未来的功能扩展打下坚实的基础。 ### 模板文件的存放与基础约定 AnQiCMS的模板系统采用类似Django的模板引擎语法,这让熟悉前端开发的您会感到十分亲切。所有模板文件都统一使用`.html`作为文件后缀

2025-11-07