
2025 年社交媒体图片要求指南
掌握为所有平台创建完美社交媒体图片的艺术,附最新规格说明

开发者高效将 Logo Foundry 资源集成到项目中的完整技术指南
不同工具的文件目录不同。独立 Favicon Generator 的文件位于 ZIP 根目录,包含 favicon.ico、favicon-32x32.png、apple-touch-icon.png、site.webmanifest 和 integration-guide.html。服务端上传工作流则把图片放在 icons/、social/,代码放在 snippets/。
可以用favicon 案例包跟随本文操作,无需账户。先解压再复制文件,ZIP 下载地址不能直接作为图标地址。
以下示例把 favicon PNG、ICO 和 Apple Touch PNG 放在网站的 public/icons/,把独立工具生成的 manifest 放在 public/site.webmanifest。常见静态部署中,它们对应 /icons/... 与 /site.webmanifest。
如果把图标移动到 icons/,也要更新 manifest 中每个 src。Manifest 相对路径以 manifest 网址为基准,不是以 HTML 页面为基准。部署在子路径的网站,还应使用实际公开的基础路径。
先把实际导出文件映射到公开网址,再添加声明。
<link rel="icon" href="/icons/favicon.ico">
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">示例使用独立工具实际导出的文件名。只有对应工作流提供 SVG 时,才加入 SVG 声明;不要仅因旧清单出现 Safari 固定标签、Windows 或社交图片就添加相关声明,应先确认文件存在并适用于项目。
将独立 Favicon 包的 site.webmanifest 放在公开根目录,并把每个 src 改成真实部署路径。相对路径以 manifest 网址为基准,不以页面为基准。Manifest 不会自动实现离线缓存;标准与 maskable 图标示例见 PWA 指南。
下面使用同一套导出文件,提供手动集成方法,不代表 LogoFoundry 额外生成了各框架安装包。除 SvelteKit 的资源占位符外,示例网址均以域名根目录部署为前提;子目录部署应匹配项目的基础路径。
选择一套图标配置并检查最终 head;文件约定可能覆盖 metadata 配置。
可以在 app layout 使用以下 metadata,图片仍放在 public/icons/。另一种方式是使用 Next.js 的 app/favicon.ico、app/icon.png、app/apple-icon.png 文件约定。避免两套配置互相覆盖。详见 Next.js 图标文件约定与 metadata 配置。
import type { Metadata } from 'next';
export const metadata: Metadata = {
icons: {
icon: [
{ url: '/icons/favicon.ico' },
{ url: '/icons/favicon-32x32.png', type: 'image/png', sizes: '32x32' },
],
apple: [{ url: '/icons/apple-touch-icon.png', sizes: '180x180' }],
},
manifest: '/site.webmanifest',
};Manifest 描述图标和启动配置,不会自动实现离线缓存,也不能证明 PWA 可安装。原生 iOS 的 AppIcon.appiconset 与 Android res/ 应导入应用项目,不应放进 HTML head。
标题沿用原稿,Pages Router 并不限于 Next.js 12 及以下。已有 Pages Router 项目可将文件保存在 public/icons/,通过 next/head添加声明。共用声明可放在 pages/_app.tsx,并检查各页面是否另有冲突设置。
import Head from 'next/head';
import type { AppProps } from 'next/app';
export default function App({ Component, pageProps }: AppProps) {
return (
<>
<Head>
<link rel="icon" href="/icons/favicon.ico" key="favicon" />
<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />
</Head>
<Component {...pageProps} />
</>
);
}图片放在 public/icons/,manifest 放在 public/site.webmanifest。编辑的是项目根目录的 index.html,不是 React 组件或 public/index.html。使用 Vite HTML 入口的 Vue 项目也适用。参阅 Vite 公共资源说明。
<!-- 放入已有 index.html 的 head -->
<link rel="icon" href="/icons/favicon.ico">
<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">Vite 复制 public 文件时保留文件名。配置了 base 的项目,应同时调整 HTML 与 manifest 的基础路径。构建后在实际部署目录测试首页和嵌套路由,不能只根据开发服务器判断路径正确。
维护已有 Create React App 项目时,应遵循该项目的 HTML 入口与公开基础路径约定,不要直接套用 Vite 根入口规则。
文件放在 public/,在共用布局(例如 src/layouts/Layout.astro)已有的 <head> 中添加声明,让使用此布局的页面都带上图标。文件复制规则参阅 Astro public 目录说明。
<!-- 放入共用 .astro 布局的 head -->
<link rel="icon" href="/icons/favicon.ico">
<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">已经使用共用布局的页面,不需要重复声明。部署到子目录时,将实际基础路径加入公开网址,并检查 manifest 的图片引用。
添加可选客户端行为之前,先让初始 HTML 提供正常图标。
应用可以根据未读状态切换标签图标。初始 HTML 仍应提供常规图标,状态变化后只修改一个明确管理的 link。下面是可选示例,假设两张 PNG 都已另外制作并部署;它们不是标准 ZIP 额外交付的素材。
<link id="site-favicon" rel="icon" type="image/png" href="/icons/favicon-32x32.png">function setUnreadIcon(unread) {
const icon = document.querySelector('link#site-favicon');
if (icon) {
icon.setAttribute('href', unread
? '/icons/favicon-unread.png'
: '/icons/favicon-32x32.png');
}
}路径应匹配实际部署基础路径。如果 head 由框架管理,应与框架的状态/head 机制整合,避免后续导航覆盖修改;不要反复追加图标 link。动态标签图标不会更新已安装 PWA 或 Google 搜索图标。主题配色可参阅深色 SVG 示例。
自包含 SVG 可以使用 prefers-color-scheme。准备真实主题文件并测试浏览器选中的网址;参阅深色 SVG 示例。运行时标签图标切换不会更新已安装应用或搜索图标。
先检查真实请求和最小图像,再增加提示或脚本。
不要默认预加载整套图标,也不要把 512px PNG 的 preload 写成安装加速保证。应先测量相关页面,再对确有需要的请求添加提示。
CDN 地址应公开返回真实图片及恰当内容类型,head 使用实际网址。单独检查 CDN 缓存;多个图标声明不构成固定的回退顺序。
使用可信图稿,公开 SVG 前检查其内容。如果站点配置了 Content Security Policy 或独立资源域名,应检查控制台和对应图片、manifest 请求适用的策略,不要为了掩盖错误网址而放宽全站策略。公开图标和分享图应能在没有私有登录会话时直接返回图片。
检查控制台和图片、manifest 请求适用的策略,只放行实际部署需要的位置。不要用复制来的局部 CSP 覆盖全站策略。
不要把示例校验值直接用于线上声明,也不要假定它证明 favicon 完整性。在构建/发布环节核对已知文件校验值与实际部署字节;浏览器完整性机制必须适用于具体资源类型。
分别核对文件、声明和实际显示。
DOM 中存在 link 只能证明声明存在。检查 getAttribute("href") 和 getAttribute("sizes"),再请求真实网址并验证内容类型、图片尺寸;返回 200 的 HTML 回退页仍不是图标。
从公开网址和响应开始排查,再考虑图稿设计。
src 能否返回对应 PNG。Google 搜索展示是独立过程,请按 Google favicon 指南配置;标签正确不代表即时显示。可复现的导出或文档问题请通过关于与联系反馈。
比较真实文件尺寸与 sizes 声明,排查框架重复配置,并区分小标签图与 manifest 启动器图。
确认真实 ICO 内容,不是改名 PNG 或 HTML 回退页。检查路由及内容类型,不要添加重复 Content-Type,也不要给频繁替换的无版本网址套用长期 immutable 缓存。
按实际工具和输出目录完成集成。
独立 Favicon Generator与上传工作流输出布局不同,先查看文件清单再复制。
<link rel="icon" href="/icons/favicon.ico">
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">示例使用独立工具实际导出的文件名。只有对应工作流提供 SVG 时,才加入 SVG 声明;不要仅因旧清单出现 Safari 固定标签、Windows 或社交图片就添加相关声明,应先确认文件存在并适用于项目。
可以在 app layout 使用以下 metadata,图片仍放在 public/icons/。另一种方式是使用 Next.js 的 app/favicon.ico、app/icon.png、app/apple-icon.png 文件约定。避免两套配置互相覆盖。详见 Next.js 图标文件约定与 metadata 配置。
import type { Metadata } from 'next';
export const metadata: Metadata = {
icons: {
icon: [
{ url: '/icons/favicon.ico' },
{ url: '/icons/favicon-32x32.png', type: 'image/png', sizes: '32x32' },
],
apple: [{ url: '/icons/apple-touch-icon.png', sizes: '180x180' }],
},
manifest: '/site.webmanifest',
};Manifest 描述图标和启动配置,不会自动实现离线缓存,也不能证明 PWA 可安装。原生 iOS 的 AppIcon.appiconset 与 Android res/ 应导入应用项目,不应放进 HTML head。
保留可编辑源图,公开部署目标场景需要的格式和尺寸。压缩副本后对比 16px、32px 实际图像:如果内部镂空消失,文件变小也不是有效优化。PNG 压缩没有一个可通用于所有图片的 JPEG 式质量百分比。
服务器应返回恰当的图片内容类型。CDN、service worker 和浏览器各有缓存,需要分别检查。采用带版本文件名时,在同一次发布中更新 HTML 与 manifest,并让旧文件在旧文档缓存期间继续可用。版本查询参数可辅助识别响应,却不能强制所有浏览器或已安装应用立即更新图标。
不要默认预加载整套图标;先检查实际网络请求和页面性能。反复通过脚本更换 favicon 也不能修复错误的部署路径。
在生产构建的首页及嵌套路由检查实际文件。
发布前,在生产构建中打开首页和一个嵌套网址,确认未登录可访问图片及 manifest,所有引用对应真实文件,head 中是预期声明。分别测试相关浏览器的标签、书签和主屏幕安装。保留源图与已部署文件包,便于后续比较或回滚图标变化。
未登录请求图片与 manifest,检查最终 head,分别测试标签、书签和主屏幕安装。上传报告是图像统计提示与基础文件检查,不是 WCAG 测量或平台认证。
按框架的真实公开目录约定配置,把声明与文件对应,再检查部署结果;这些步骤不保证所有浏览器完全相同。可复现的导出或说明问题可通过关于与联系反馈。
加入我们的社区
订阅邮件列表,及时获取最新消息和更新