rosswintle / statamic-asset-cache
Statamic (v3) 项目中包含 JavaScript 和 CSS 资源的本地缓存
Requires
- php: ^8.0 || ^8.1
- rosswintle/laravel-asset-cache: ^3.0
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 中提供了更多限制。
路线图
请参阅 包的路线图
致谢
- 感谢 Marcel Pociot 提供的出色的 PHP 包开发 课程,这对我制作这个包帮助很大。
- 感谢 Ben Furfie、Ryan Chandler 和 Duncan McClean 的鼓励和反馈,以及 Erin Dalzell 在 Statamic 插件方面的一点点帮助。