문제

동적 CSS와 JavaScript를 날아가는 방법 (PHP 사용)은 어떻게 생성합니까? 이것은 다른 페이지마다 다른 요소 세트가 있기 때문에 수행해야하므로 때때로 다른 요소 세트가 있으므로 매번 큰 CSS/JS를 감싸고 보내는 것이 과도하게됩니다. 그리고 왜 많은 사이트에 다음과 같은 링크 태그가 있습니까?

<link rel='stylesheet' type='text/css' href='css/style.css?pg_id=43&post=62'>

CSS는 GET 매개 변수를 어떻게 알 수 있습니까?

여기에는 URL 재 작성이 포함되거나 헤더 기능을 사용하므로 짧은 예제를 제공하십시오.

도움이 되었습니까?

해결책

따라서 여기서 가져갈 수있는 몇 가지 다른 접근법이 있습니다. 먼저 Apache의 VirtualHost 파일에 액세스 할 수있는 경우 PHP 통역사가 CSS를 읽을 수 있습니다. 나는 이것을 한 번도 해본 적이 없으며 정확히 추천하지는 않지만 예는 다음과 같습니다.

<VirtualHost *:80>
  AddType application/x-httpd-php .css
</VirtualHost>

.htaccess 파일에서도 수행 할 수도 있습니다.

또는 링크를 만들 수 있습니다

<link rel='stylesheet' type='text/css' href='css/style.php?pg_id=43&post=62'>

그리고 넣습니다

<?php header("Content-type: text/css"); ?>

첫 번째 줄로.

나는 Vinicius의 기술을 고려한 적이 없지만 고유 한 장점과 단점이 있다는 것은 의심의 여지가 없습니다.

추신 - 때때로 GET GET 변수는 캐싱 목적으로 사용됩니다 (또는 실제로 현재 UNIX 타임 스탬프를 CSS 링크와 PHP와 같은 CSS 링크에 추가하여 캐싱을 방지합니다.

<link href="style.css?<?php echo time()" type="text/css" rel="stylesheet" />

다른 팁

.css 또는 .js 파일에 대한 요청은 예를 들어 .htaccess (apache)를 사용하여 PHP 스크립트로 리디렉션 될 수 있으므로 SRC 속성이 "Style.css"인 경우에도 실제로 PHP 스크립트입니다. 사용자에게 응답.

CSS 및 JavaScript 파일이 캐시되어 있으므로 크기가> 200kb 정도가 아닌 한 다른 스타일 시트 / JS 파일을 제공하지 않는 것이 좋습니다.

그렇습니다. 해당 파일의 올바른 컨텐츠 유형을 반환하는 한 매개 변수 (.php 또는 모든 확장)가있는 서버 측 페이지를 참조 할 수 있습니다.

Sidenote : 일반적으로 매개 변수가 있고 이러한 방식으로 파일을 동적으로 서신하는 경우, 그렇게하지 않으면 자동으로 캐시되지 않을 것이라고 생각합니다.

Simple example:

<link rel="stylesheet" type="text/css" href="/css.php?color=wide-red">

<?php
header('Content-Type', 'text/css; charset=utf-8');
$colorScheme = (string)$_GET['color'];

switch ( $colorScheme ) {
    case 'wide-red':
       $bgColor = 'c0c0c0';
       $fgColor = 'ffffff';
       $width = '1280px';
    break;

    case 'normal-gray':
       $bgColor = '333333';
       $fgColor = 'ffffff';
       $width = '960px';
    }
    break;

}
?>
body { 
   background:<?php echo $bgColor;?>;
   color:<?php echo $fgColor;?>;
   width:<?php echo $width;?>;
}

Echo를 사용할 수 있고 템플릿 시스템을 사용할 수 있으며 File_get_Contents가있는 다른 CSS 파일을 가져올 수 있습니다. 핵심 사항은 올바른 컨텐츠 유형을 보내고 올바른 매개 변수를 잡고 매개 변수가 제공되지 않으면 기본 폴백이 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top