1

プロジェクトをコンテンツの特定のコンテキストに応答させるには、追加の CSS ファイルを設定する (http 要求に追加する) か、それぞれの php スクリプト内で CSS を解析する (私見: かなり面倒) 代わりに、CSS ファイルがそれぞれ応答するようにします。

CSS から PHP パーサー

これで、css ファイルも処理するように .htaccess 経由で PHP パーサーに指示できるようになりました。
短所は次のとおりです。現在のプロジェクト構造で複数のcssファイルを処理するオーバーヘッドまたは構造を壊して、1つのサブディレクトリでのみCSSファイルの解析を有効にします。
どちらの方法でも、次のように簡単に実行できます。

AddType application/x-httpd-php php php4 php3 css

... 対 CSS リソースとしての PHP スクリプト

または、ページ メタデータの php ソースを css ソースとしてリンクすることもできます。
考えられる欠点: 一部のブラウザーは、異なる拡張子を持つファイルを CSS リソースとして受け入れない可能性があります...?
いずれかの方法...:

<link rel="stylesheet" type="text/css" href="/style/preprocessed.css.php" media="all">

何を提案しますか?

4

2 に答える 2

1

リソースが返す限り、Content-Type: text/cssブラウザーはそれを CSS として受け入れます。

HTTP トラフィックを減らしたい場合は、YSlowなどのツールを使用して Web サイトも分析してください。HTTP トラフィックを最適化するための確かなヒントを提供します。

実行できる比較的簡単な最適化が 2 つあります。

  1. gzip 圧縮を有効にします。これにより、ファイルサイズが縮小され、通常は読み込み時間が短縮されます。
  2. 適切なキャッシュ ヘッダーを設定します。通常、CSS ファイルは静的であり、リクエストごとに変更されることはありません。個人的には、CSS や JavaScript などのリソース ファイルのキャッシュ戦略としてフィンガープリンティングが好きです。

PHP に CSS 生成を処理させることには利点がありますが、ファイルを Apache サーバーに処理させることができれば、なおさらですそれらを PHP で提供したい場合は、readfile関数を参照してください。非常に低いオーバーヘッドでファイルの読み取りとエコーを行うことができます。


解析という言葉を使います。実際には解析を意味しているとは思いませんが、サービスのようなものです。

于 2014-06-18T16:25:41.587 に答える
1

<link rel="stylesheet" href="style.php">すべてのブラウザーで正常に動作するはずですが、PHP ファイルに正しいヘッダーを設定してください。

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

CSS ファイルを PHP としてパースするつもりはありません。

/* bad.css */
<?php unlink('index.php'); ?>

...または何でも。それは起こり得ないはずです (そして、プロジェクトに取り組んでいる他の人々はそれを期待していないかもしれません)。

理想的には、事前にすべての CSS を処理し、最小化された通常の CSS ファイルにリンクするだけです。

于 2014-06-18T16:23:43.507 に答える