[Info] Hướng dẫn tích hợp CDN cho Laravel

CDN là viết tắt của Content Delivery Network, có thể tạm dịch là mạng phân phối nội dung. Với hệ thống máy chủ đặt tại nhiều nơi trên thế giới sẽ giúp tối ưu hóa tốc độ website cho người truy cập và nâng cao chất lượng website. Trong bài viết này, HOSTVN sẽ hướng dẫn các bạn tích hợp CDN cho Laravel.

1. Tích hợp CDN cho Laravel

1.1. Bước 1: Đăng ký CDN. Dịch vụ

Để sử dụng CDN, bạn cần đăng ký dịch vụ CDN. Nếu chưa đăng ký, bạn có thể tham khảo các gói CDN của HOSTVN tại đây. Sau khi đăng ký dịch vụ CDN, bạn sẽ được cung cấp một liên kết CDN tương tự như sau:

qf0sroimw4web.cdn.hostvn.net

1.2. Bước 2: Tạo trình trợ giúp tùy chỉnh cho Laravel

Tiếp theo để tải liên kết CDN, bạn tạo một trình trợ giúp tùy chỉnh để định cấu hình. Để tạo một trình trợ giúp tùy chỉnh, trước tiên bạn tạo một thư mục ứng dụng / người trợ giúp

thư mục trợ giúp

Tiếp theo bạn tạo tệp app / Helpers / CDN.php với nội dung sau:

<?php

if (!function_exists('cdn')) {
   function cdn( $asset ){

      // Verify if KeyCDN URLs are present in the config file
      if( !Config::get('app.cdn') )
         return asset( $asset );

      // Get file name incl extension and CDN URLs
      $cdns = Config::get('app.cdn');
      $assetName = basename( $asset );

      // Remove query string
      $assetName = explode("?", $assetName);
      $assetName = $assetName[0];

      // Select the CDN URL based on the extension
      foreach( $cdns as $cdn => $types ) {
          if( preg_match('/^.*\.(' . $types . ')$/i', $assetName) )
             return cdnPath($cdn, $asset);
      }

      // In case of no match use the last in the array
      end($cdns);
     return cdnPath( key( $cdns ) , $asset);
  } 
}

if (!function_exists('cdnPath')) {
  function cdnPath($cdn, $asset) {
     return  "//" . rtrim($cdn, "/") . "/" . ltrim( $asset, "/");
  }
}

1.3. Bước 3: Tạo nhà cung cấp dịch vụ

Tiếp theo, để Laravel tự động tải tệp trợ giúp, bạn cần tạo một nhà cung cấp dịch vụ. Để tạo nhà cung cấp dịch vụ, hãy sử dụng lệnh sau:

php artisan make:provider HelperServiceProvider

Sau đó, bạn mở tệp app / Providers / HelperServiceProvider.php Xóa tất cả nội dung của tệp và thay thế bằng nội dung sau:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class HelperServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        foreach (glob(app_path() . '/Helpers/*.php') as $file) {
            require_once($file);
        }
    }

    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }
}

Cuối cùng mở tệp config / app.php và thêm các nhà cung cấp. khối

App\Providers\HelperServiceProvider::class,

HelperServiceProvider

1.4. Bước 4: Tích hợp CDN

Để Laravel tải tất cả nội dung tĩnh bao gồm hình ảnh, js, css từ liên kết CDN bạn thêm vào cuối tệp config / app.php nội dung sau:

/*
    |--------------------------------------------------------------------------
    | CDN
    |--------------------------------------------------------------------------
    */

    'cdn' => array(
        "qf0sroimw4web.cdn.hostvn.net" => "jpg|jpeg|png|gif|svg|ico|css|js|eot|woff|ttf",
    ),

Tích hợp CDN cho Laravel

Trong đó qf0sroimw4web.cdn.hostvn.net là liên kết CDN của bạn

1.5. Bước 5: Thay đổi tất cả các liên kết js, css, hình ảnh thành liên kết CDN

Bước cuối cùng bạn cần thay đổi tất cả các liên kết js, css, hình ảnh thành liên kết CDN. Cách gọi link js, css, image bây giờ sẽ như thế này

// Image
<img src="https://blog.hostvn.net/chia-se/{{ cdn("/img/yourImg.png" ) }}" alt="Image" />

// CSS
<link rel="stylesheet" href="{{ cdn('frontend/css/main.css') }}">

// js
<script src="{{ cdn('frontend/js/main.js') }}"></script>

2. Kết luận

Qua bài đăng này HOSTVN Tôi đã hướng dẫn bạn cách tích hợp CDN cho Laravel. Nếu có bất kỳ góp ý nào, bạn có thể để lại bình luận bên dưới cho chúng tôi biết. Ngoài ra, bạn có thể xem thêm Hướng dẫn upload Laravel lên hosting cPanel.

Viết một bình luận

bahis10bets.com betvole1.com casinomaxi-giris.com interbahis-giris1.com klasbahis1.com mobilbahisguncelgiris1.com piabetgiris1.com tipobettgiris.com tumbetgiris1.com betboro 1xbet giriş
bahis10bets.com betvole1.com casinomaxi-giris.com interbahis-giris1.com klasbahis1.com mobilbahisguncelgiris1.com piabetgiris1.com tipobettgiris.com tumbetgiris1.com betboro 1xbet giriş
antalya bayan escort
antalya bayan escort
antalya bayan escort