1

サイトのすべてのページに「header.php」というファイルがあり、このファイルには、cssファイルやjqueryプラグインなど、サーバー上の他のファイルへのリンクが含まれています。現在、絶対パスを使用しています。これらのリンクは、header.phpファイルと同じディレクトリにないファイルで機能するため、これは機能しますが、以下の例でわかるように、header.phpファイルを使用すると管理が非常に難しくなります。たくさんのリンクが含まれているので(私の場合はそうです)、ここで行ったように、header.phpファイルで絶対パスを使用する他の方法があるかどうかを知りたいと思います。

header.php

<? 
 $base_url = "http://example.com";
?>
    <html>
      <head> 
       <title> <? echo($title); ?> </title>

        <link rel="stylesheet" type="text/css" href="<? echo($base_url); ?>/styles/some_css_file.css" media="all"/>
        <link rel="stylesheet" type="text/css" href="<? echo($base_url); ?>styles/another_css_file.css" media="all"/>
        <link rel="stylesheet" type="text/css" href="<? echo($base_url); ?>styles/another_css_file.css" media="all"/>
        ...
        ...
        ...

        <script type="text/javascript" src="<? echo($base_url); ?>/scripts/jquery-1.7.2.min.js"></script>
        <script type="text/javascript" src="<? echo($base_url); ?>/scripts/some_jquery_plugin.js"></script>
        <script type="text/javascript" src="<? echo($base_url); ?>/scripts/another_jquery_plugin.js"></script>
        ...
        ...
        ...
      </head>

header.phpを含むいくつかのファイル

<? 
  $title = "some page title";
  include("header.php"); 
?>

      <body>
        PAGE CONTENTS
      </body>
    </html>
4

4 に答える 4

1

絶対的な道はここに行く方法です。ただし、印刷するリンクがたくさんある場合は、パスを配列に格納し、配列をループすることで簡略化できます。

$base = "http://www.example.com/"
$links = array( "styles/file1.css", "styles/file2.css", ... );

foreach ( $links as $link ) {
    echo '<link rel="stylesheet" href="' . $base . $link . '" type="text/css" media="all" />';
}

ちなみに、あなたが持っていることは素晴らしい習慣ではありません。これらのファイルのいくつかを組み合わせてみると、ブラウザがサーバーに対して行う必要のあるHTTPリクエストの量が減るので、より適切で効率的です。http://developer.yahoo.com/performance/rules.html#num_http

于 2012-06-22T21:48:07.330 に答える
1

私は自分のプロジェクトの1つで同じ疑問を持っていました、そして私は以下のコードとしてやりました。パスは「/」で始まるため、ファイルはルートディレクトリに基づいて検索されます。この場合、ドメインを指定する必要はありません。URLの書き換えを行うと、保守が容易になり、問題を防ぐことができます。 (mod_rewrite)を使用します。それがあなたにも役立つことを願っています!

<html>
  <head> 
   <title> <? echo($title); ?> </title>

    <link rel="stylesheet" type="text/css" href="/styles/some_css_file.css" media="all"/>
    <link rel="stylesheet" type="text/css" href="/styles/another_css_file.css" media="all"/>
    <link rel="stylesheet" type="text/css" href="/styles/another_css_file.css" media="all"/>

    <script type="text/javascript" src="/scripts/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="/scripts/some_jquery_plugin.js"></script>
    <script type="text/javascript" src="/scripts/another_jquery_plugin.js"></script>
  </head>
</html>
于 2012-06-22T21:50:47.780 に答える
1

HTMLベースタグを使用して、サイトのベースを定義します。

<base href="<?php echo $base_url; ?>" />
<link rel="style.css" />
于 2012-06-22T21:44:25.627 に答える
0

これはあなたの質問に対する直接の答えではありませんが、あなたを助けるかもしれません。

その数のcssファイルとJSファイルを含める場合は、Minifyの使用を検討する必要があります。Minifyは、多数のcss / jsファイルを取得し、それらを1つのファイルに圧縮/結合します。これにより、サイトの読み込みが大幅に高速化されます。

これを使用すると、ディレクトリとグループを非常に簡単に指定できるため、パスの問題にも役立ちます。

あなたはここでそれについての情報を見つけることができます: ミニファイ

于 2012-06-22T21:45:56.380 に答える