thecoderraman/laravel-assets-version

Laravel静态资源版本控制通过查询字符串:app.js → app.js?v=d41d8cd98f

v1.0 2023-12-08 17:12 UTC

This package is auto-updated.

Last update: 2024-09-05 17:24:40 UTC


README

  license   laravel Latest Version on Packagist

logo

🦸‍♂️ 关于

通过结合查询字符串,Laravel静态资源版本控制方便了静态资源版本控制,例如将app.js转换为app.js?d41d8cd98f。此方法允许高效地清除缓存,确保更新的静态资源版本能够被网络浏览器及时识别并使用。通过添加唯一的查询字符串,如附加的d41d8cd98f,系统可以有效地区分同一静态资源的不同版本,从而提高Web开发项目的性能和可靠性。

通过Laravel的动态资源版本控制,无缝集成查询字符串,确保高效的缓存清除和快速识别更新版本。

👊 "使用Laravel的动态版本控制进行高效缓存清除"。

主要技术

  • laravel

结构

├───config
├───resources
├───src
│   ├───Console
│   ├───Contracts
│   ├───Helpers
│   └───Support
│       └───Facades
└───tests
    ├───Concerns
    ├───Feature
    └───Unit

💫 要求

  • PHP >= 7.3

⚜️ 功能

  • 支持多种哈希算法生成资源文件版本。
  • 支持不同的过滤器在资源版本生成期间过滤资源文件。
  • 使用asset_path()辅助函数自动分配版本到资源URL。

入门 🎉

以下说明将使您在本地机器上运行库副本,用于生产和开发。

👨‍💻 生产环境

安装此包
$ composer require thecoderraman/laravel-assets-version
发布配置文件
$ php artisan vendor:publish --tag=assets-version
根据需要更新配置文件
edit: config/assets-version.php
根据需要更新环境文件
# Directory for assets
ASSET_PATH=assets
# Path to assets directory
ASSET_URL=https:///assets

🕹️ 库基本用法

您可以使用below辅助函数获取任何资源文件的版本化URL
使用辅助函数
# For Type Js
js_path('app.js');  // "assets/js/app.js?3085ede8f2"

# For Type Css
css_path('app.css');  // "assets/css/app.css?3ede8f2085"

# For Other Types
asset_path('images/logo.png');  // "assets/images/logo.png?e8f203ed85"
在Laravel blade模板内部使用
<link href="{{ asset_path('js/app.js') }}" rel="stylesheet">
使用外观
<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use TheCoderRaman\AssetsVersion\Support\Facades\AssetsVersion;

class WelcomeController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return string
     */
    public function index()
    {
        // "assets/js/app.js?3085ede8f2"
        dump(AssetsVersion::jsPath('app.js'));

        // "assets/css/app.css?3ede8f2085"
        dump(AssetsVersion::cssPath('app.css'));

        // "assets/images/logo.png?e8f203ed85"
        dump(AssetsVersion::assetPath('images/logo.png'));
    }
}

⚠️ 您必须每次更改任何资源文件内容时都运行这些命令。

资源版本命令
# For generating assets version cache file
$ php artisan assets-version:cache

# For removing assets version cached file
$ php artisan assets-version:clear

🛠️ 开发环境

克隆此存储库
$ git clone https://github.com/TheCoderRaman/laravel-assets-version.git
$ cd laravel-assets-version
$ composer install
PhpUnit测试
# Run Tests
$ composer run-script phpunit
用于测试集成的Testbench
# Use TestBench
$ composer run-script testbench
$ composer run-script testbench:serve
$ composer run-script testbench:build
$ composer run-script testbench:prepare
$ composer run-script testbench:clear

存储库分支

  • master -> 此分支的任何更改pull请求
  • main -> 不要修改,这是在生产中运行的

贡献

欢迎拉取请求。对于主要更改,请首先打开一个问题以讨论您想要更改的内容。请确保适当地更新测试。

拉取请求
  1. 叉存储库并创建您的分支:#[type]/PR description
  2. 确保描述您的拉取请求:通过添加语义前缀(如AddedUpdated:Fixed:等)来编辑PR标题。标题:#[issue] PR标题 -> #90 修复了按钮的样式

作者

行为准则

为了确保Assets Version社区对所有成员都友好,请查阅并遵守行为准则

安全漏洞

如果您在Assets Version中发现安全漏洞,请通过电子邮件联系拉曼·维尔玛。所有安全漏洞都将得到及时处理。

许可协议

Assets Version是开源软件,采用MIT许可协议