rosswintle/statamic-asset-cache

Statamic (v3) 项目中包含 JavaScript 和 CSS 资源的本地缓存

安装: 18

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 0

开放问题: 0

类型:statamic-addon

v3.0 2022-04-03 19:56 UTC

This package is auto-updated.

Last update: 2024-09-30 01:28:40 UTC


README

一个 Statamic (v3) 插件,可自动从 CDN 下载 CSS 和 JS 资产,以便本地托管。

这是基于我的 Laravel Asset Cache 包的 Statamic 标签。

安装

使用以下版本(我认为 - 3.x 之前的版本可能不准确)

  • v3.x 用于 Statamic 3.3/Laravel 9,PHP 8.0/8.1
  • v2.x 用于 Statamic 3.1/3.2/Laravel 8,PHP 7/8.0
  • v1.x 用于 Statamic 3.0/Laravel 8,PHP 7

使用 composer 安装包

composer require rosswintle/statamic-asset-cache

缓存的资产存储在并从 public 文件存储 "磁盘" 中提供服务。您需要将 public/storage 目录符号链接到 storage/app/public,如下 Laravel 文档 中所述

php artisan storage:link

确保在所有环境中都这样做:本地、预发布和生成,如果您还没有这样做的话。

使用方法

Statamic 标签是

{{ asset_cache package='<npm package name>' version='<version constraint>' file='<file path and name>' }}
  • package 是 npm 包的名称(目前仅通过 jsdelivr.net 支持npm)
  • version 是版本约束,例如 1.9.0。假设使用语义化版本。您可以使用 1.9 获取最新的 1.9.x 版本,如 jsdelivr 文档 中所述,但在生产环境中不建议这样做
  • file 是您想要相对于包根目录的资产路径和文件名(包括扩展名)。例如 dist/alpine.js

该标签输出包中本地缓存的文件的 URL。

示例

<script defer src="{{ asset_cache package='alpinejs' version='1.9' file='dist/alpine.min.js' }}"></script>

您也可以用它来处理 CSS

<link rel="stylesheet" href="{{ asset_cache package='tailwindcss' version='1.1.4' file='dist/tailwind.min.css' }}">

这是做什么的?

使用标签

  • 从 jsdelivr.net 下载资产
  • 将其缓存在您网站的 public 目录中
  • 返回缓存的本地资产的 URL

它解决了什么问题?

如果您想本地托管资产,则无需手动下载资产并将它们包含在项目中。

您可能出于各种原因想要这样做,例如避免跟踪用户,避免依赖第三方 CDN,以及可能的性能优势。

我还致力于放弃 npm 和构建过程,以便从简单的项目中构建,因此此部分的自动化看起来很有用。

如果您敢指定一个不精确的版本约束,例如仅 1.9,您也可以获取依赖项的最新版本,而无需做任何事情!但所有大型 CDN 的建议是不要这样做,因为它可能会破坏您的网站,所以请 谨慎使用 并避免在生产环境中使用!!

兼容性

此包是为 Statamic 3(beta)和 Laravel 6.x 构建和测试的,但应该可以在新版本上运行。

限制

这是我第一个公开的包和 Statamic 插件。可能会有很多错误!请温柔对待。

包的 README 中提供了更多限制。

路线图

请参阅 包的路线图

致谢