以前も質問させていただきましたが、解決できなかったので再度質問させていただきます。外部 CDN サービスから CSS をフェッチしようとしていますhttp://cdn.example.com/
。
このコードは、ファイルが外部 CDN に存在するかどうかを確認し、存在する場合はそのファイルを取得し、それ以外の場合はローカル フォルダーから取得します。
このコードを修正してください。
function getCSSfile($filename)
{
$externalcss = EXTERNAL_CDN.'css/'.$filename.'.css';
$localcss = LOCAL_CDN.'css/'.$filename.'.css';
$ctx = stream_context_create(array(
'http' => array(
'method' => 'HEAD'
)
));
if (file_get_contents($externalcss, false, $ctx) !== false) {
echo '<link href="' . $externalcss . '" rel="stylesheet" type="text/css" media="all"/>';
} else if (file_exists($localcss)) {
echo '<link href="' . $localcss . '" rel="stylesheet" type="text/css" media="all"/>';
} else {
echo 'Error loading CSS File';
}
}
現在、コードは正常に実行され、外部 CDN からコピーをフェッチし、外部CDNが利用できない場合はローカル コピーをフェッチしますが、次のエラーもスローします。
Warning: file_get_contents(http://cdn.site1.com/css/core.css): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in D:\xampp\htdocs\site2\core\core.php on line 165
そして165行目でこれはコードです
if (file_get_contents($externalcss, false, $ctx) !== false) {
ローカルでテストし、XAMPP サーバーにいくつかのドメインを作成したため、ライブ リンクを共有できません。