ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP6 での静的ファイルサーバーの使用

ThinkPHP6 での静的ファイルサーバーの使用

WBOY
WBOYオリジナル
2023-06-20 14:06:081735ブラウズ

インターネットの急速な発展に伴い、静的リソース サーバーは Web アプリケーション開発の重要な部分になりました。静的リソース サーバーは主に静的リソース (画像、js、css、その他のファイル) の保存と配布を担当し、ユーザーに高速で安定したアクセス エクスペリエンスを提供します。 PHP 開発では、人気のある MVC フレームワークとして ThinkPHP6 が、静的リソース サーバーを迅速に構築するのに役立ついくつかの組み込み関数を提供します。

ThinkPHP の静的リソースについて考える

ThinkPHP6 では、いくつかの組み込み関数とクラスを通じて静的リソースのリクエストを簡単に処理できます。 ThinkPHP はデフォルトで /public/ 下の静的リソース要求を処理できるため、/static/、/images/、/css/、/js などのディレクトリに対する要求を直接処理できます。 /public/index.php ファイルでは、ThinkPHP のコア ファイルが導入され、静的リソースの処理ロジックが定義されています。

if (is_file(__DIR__ . '/../public' . $_SERVER['REQUEST_URI'])) {
    return false;
}

要求された URL がファイルであり、このファイルが次の場所にある場合/public/ directory の場合、このファイルはルーティング分析やコントローラー処理を行わずに直接返されます。これは、/public/ ディレクトリ内のリソースには、ルーティング ルールを使用せずに直接アクセスできるためです。もちろん、/public/ ディレクトリのパスをカスタマイズする必要がある場合は、config/app.php ファイル内の public_root 変数を変更できます。例:

'public_root' => __DIR__ . '/../assets/',

これにより、デフォルトの /public/ ディレクトリを使用する代わりに、アプリケーション ルート ディレクトリのアセット ディレクトリが /public/ ディレクトリのルート ディレクトリとして指定されます。

CDN を使用して静的ファイルにアクセスする方法

実際の導入環境では、トラフィックとアクセス速度をより最適化するために、通常、静的ファイルを CDN (コンテンツ配信ネットワーク、コンテンツ配信) にアップロードします。ネットワーク) ストレージおよび配布用のプロバイダー。簡単に言えば、CDN は複数のノードを使用して静的リソースをキャッシュおよび配布するネットワークであり、ユーザーがリソースにアクセスするときに、最も近いノード サーバーからリソースを取得できるため、より高速で安定したユーザー エクスペリエンスが提供されます。 ThinkPHP6 では、CDN を使用して静的ファイルにアクセスするには、構成ファイルで関連する構成を行う必要があります。

まず、CDN のホスト名を変更する必要があります。たとえば、元の /public/static リソース パスを次のように変更します。

http://cdn.example.com/static/

次に、config/app.php ファイルで、次のようにします。 app.url_html_suffix と app.static_domain の 2 つの変数を見つけて、値を次のように変更します。

'url_html_suffix' => '.html',
'static_domain' => 'http://cdn.example.com',

このようにして、CDN ホスト名と静的ドメイン名が構成され、.html が疑似ドメインとして使用されます。 -static suffix. 静的リソース要求が到着すると、フレームワークは static_domain パラメーターの URL プレフィックスに基づいて照合し、CDN 上の対応するファイルを直接返します。

assets ディレクトリ内のファイルに CDN アクセスが必要な場合は、アクセスするときに次のリンクを使用できます:

http://cdn.example.com/assets/images/logo.jpg

この場合、静的ファイルは CDN 名 cdn.example を渡します。 .comにアクセスしてください。一部の CDN プロバイダーでは、HTTP 応答ヘッダーを調整してアクセス方法を指定することもできます。例:

Cache-Control: max-age=31536000,public

この応答ヘッダーは、このファイルがキャッシュできることをブラウザーに伝え、ファイルが 1 時間以内に有効になるようにします。

まとめ

Webアプリケーション開発において静的リソースサーバーは必須であり、特にアクセス数が比較的多い場合にはCDNを利用したアクセスが必須となります。 ThinkPHP6 では、CDN のホスト名と静的ドメイン名を簡単に構成でき、いくつかの単純な関数とクラスを使用して静的リソースへのリクエストを処理できるため、ユーザーのアクセス速度とエクスペリエンスが向上します。

以上がThinkPHP6 での静的ファイルサーバーの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。