Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

图标库(iconify)离线环境下无法加载图标 #522

Open
omgcwz opened this issue Nov 28, 2024 · 1 comment
Open

图标库(iconify)离线环境下无法加载图标 #522

omgcwz opened this issue Nov 28, 2024 · 1 comment

Comments

@omgcwz
Copy link

omgcwz commented Nov 28, 2024

将电脑网络断开,将项目部署到无网环境下,图标无法显示
将电脑网络重新连接后并刷新网页图标就可以正常显示

我该然后将iconify中常用的图标编译至项目中改如何操作,麻烦指导一下

@dushenyan
Copy link

dushenyan commented Feb 25, 2025

这是AI search到的方法.

对于在无网络环境下使用 UnoCSS 并加载图标的问题,我可以为您提供以下两种解决方案:

将图标存储在本地:
这是一个可靠的方法,可以确保在无网络环境下也能正常显示图标。

步骤如下: a) 下载所需的图标文件(通常是 SVG 格式)。 b) 将这些图标文件放在项目的 public 或 assets 目录下,例如 public/icons/ 或 src/assets/icons/。 c) 在 UnoCSS 配置文件中,添加自定义规则来使用本地图标:

// uno.config.ts
import { defineConfig } from 'unocss'

export default defineConfig({
  rules: [
    [/^i-local-(.+)$/, ([, name]) => ({
      'mask': `url('/icons/${name}.svg') no-repeat`,
      'mask-size': '100% 100%',
      'background-color': 'currentColor',
      'width': '1em',
      'height': '1em',
    })],
  ],
})

d) 然后在您的组件中使用这些本地图标:

<div class="i-local-your-icon-name"></div>

其他可行方法:
a) 预构建图标:

使用 UnoCSS 的预构建功能,将所有需要的图标预先生成为 CSS。
在构建过程中,确保所有图标都被包含在最终的 CSS 文件中。
b) 使用字体图标:

将常用图标转换为字体文件(如 .woff 或 .woff2)。
在项目中引入这个字体文件,并使用对应的 Unicode 字符来显示图标。
c) 内联 SVG:

直接在 HTML 中使用内联 SVG,而不是通过 CSS 背景图像加载。
这种方法可能会增加 HTML 文件的大小,但在无网络环境下非常可靠。
d) 使用 SVG sprite:

创建一个包含所有图标的 SVG sprite 文件。
在 HTML 中使用 标签引用 sprite 中的图标。
这些方法都可以在无网络环境下确保图标的正常显示。选择哪种方法取决于您的具体需求和项目结构。本地存储图标是最直接和可靠的方法,但其他方法在某些情况下可能更适合,特别是当您需要处理大量图标时。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants