Как правильно встраивать код PHP в мои файлы CSS и JavaScript? - PullRequest
5 голосов
/ 24 ноября 2010

Как и все остальные, я храню информацию об отображении моего сайта в файлах таблиц стилей.И я хочу создать внутренние cms, чтобы пользователи могли, например, изменять

цвет, размер и т. Д. Итак, как правильно встраивать код PHP в мой файл CSS?)? Добавляет ли этот заголовок: <?php header("Content-type: text/css"); ?> И меняет ли расширение файла в ссылке: <link rel="stylesheet" type="text/css" media="screen" href="style.php"> Действителен? А как насчет JavaScript?В данный момент я повторяю теги <script type="text/javascript">, но, возможно, есть также способ встроить все в файлы .js? Спасибо!

Ответы [ 3 ]

9 голосов
/ 24 ноября 2010

Да, это совершенно верно.

То же самое можно сделать и для Javascript, отправив

<?php header("Content-type: application/javascript"); ?>

Однако это не является оптимальным с точки зрения производительности, поскольку для обслуживания этих ресурсов должен быть запущен процесс PHP.

Если у вас очень мало динамически изменяющихся свойств CSS или переменных JS, я бы посоветовал поместить их в заголовок документа и продолжить статическое обслуживание внешних файлов.

Помните, что обычно кеш-заголовки не отправляются для файлов PHP. Вы должны позаботиться об отправке правильных заголовков внутри вашего PHP-скрипта! Приветствия @oracle сертифицированный специалист для напоминания.

5 голосов
/ 24 ноября 2010

То, что вы делаете, абсолютно корректно.

Однако, если у вас большой сайт с большим количеством посетителей, вам следует просто позволить PHP "создать" "настоящий" файл CSS, когда ваш пользовательобновляет его или ее дизайн, чтобы сохранить производительность ваших серверов для более необходимых вещей:

<?php

header("Content-type: text/css");

// Your database magic here to fetch the user-specific designs 

// open the cached css
$cachefile = "cachedCSS/mycss.css";

if (file_exists($cachefile)) {
    // the page has been cached from an earlier request
    // output the contents of the cache file
    include($cachefile); 
    // exit the script, so that the rest isnt executed
    exit;
}

$fp = fopen($cachefile, 'w');
// save the contents of output buffer to the file
fwrite($fp, ob_get_contents());
// close the file
fclose($fp);
// Send the output to the browser
ob_end_flush(); 

Подробнее об этом здесь: http://www.theukwebdesigncompany.com/articles/php-caching.php

0 голосов
/ 24 ноября 2010

Убедитесь, что вы анализируете php в этих файлах.

In .htaccess:

AddType application/x-httpd-php .php .css .js

Это гарантирует, что любые теги <?php ?> в типах файлов, отличных от .phpбудет проанализирован сервером, а код php не будет читаться пользователями.

...