8

ファイルリンクをheader.php含むファイルがあります。.css

header.php別のフォルダー内の別の php ファイルに「含める」と、その.cssための hrefheader.phpが新しい php ファイルに対して正しくありません。

php ファイルが含まれるフォルダーに適した をファイルに含めるにはhref、ファイル内でを宣言する方法を教えてください。.cssheader.php

4

8 に答える 8

16

これが、多くの大規模なアプリケーションがインストール時に「ルート URI」定数/変数を設定しようとする理由です。

アプリケーションがドメイン/サブドメインのルート ディレクトリにある場合は機能し/css/style.cssますが、そうでない場合は失敗します ( /appName/css/style.css)

絶対 URI を他の構成定数/変数と共に「ルート」スクリプト フォルダーに保存すると、絶対リンクの作成が簡単になります。

define( 'SCRIPT_ROOT', 'http://localhost/yourApplication' );
// ...
echo '<link rel="stylesheet" type="text/css" href="'.SCRIPT_ROOT.'/css/style.css">';
于 2012-09-14T22:52:12.543 に答える
9

href リンクの動的な相対パス生成が必要な理由の 1 つはわかります。それは、異なるパスを持つ複数のドメインまたはサイトでプロジェクトを実行する場合です。(たとえば、プロジェクトはhttp://myproject.example.org/http://example.org/myprojecttest/で利用できます)。そうでない場合は、ルート フォルダーを基準にして css インクルードを直接指定することをお勧めします。

<link href="/css/style.css" />

これに当てはまる場合は、次のことを試してください。

header.php を必要とするすべての最上位ドキュメントで、ルートと比較した最上位ドキュメントの場所を示す $ROOT 変数を追加します。例えば:

$ROOT = './';

また

$ROOT = '../';

また

$ROOT = '../../';

これで、header.php ファイルで以下を使用できます。

<link href="<?php echo $ROOT; ?>css/style.css" />

これにより、任意の相対パスの任意のページで機能する header.php ファイルを作成できます。

完全な例

含まれるファイル (/path/header.php)

<html><body>
<head>
    <link href="<?php echo $ROOT; ?>css/style.css" />
[...]

ファイル 1 (/path/index.php):

<?php
$ROOT = './';
include 'header.php';
?>    

ファイル 1 (/path/admin/index.php):

<?php
$ROOT = '../';
include '../header.php';
?>    

ファイル 3 (/path/admin/test/magic.php):

<?php
$ROOT = '../../';
include '../../header.php';
?>    
于 2012-12-03T19:17:53.880 に答える
7

ここに集めようとしたいくつかのオプションがあります

ベースhref

<head>
<base href="http://www.mysite.com/" />
</head>

それが行うことは、特定のパスを指すようにすべての href を設定することです。このセットを使用する<link rel='stylesheet' href='css/mycss.css' />と、ページが奥深くにある場合でも、mycss.css ファイルを使用して正常に読み込むことができます。http://www.mysite.com/pages/2012/public/secret_folder/myownphpfile.php

絶対パス

などの絶対パスをいつでも使用できますが、後でファイルのフォルダーを変更するのは面倒です。

<link rel='stylesheet' href='http://www.mysite.com/css/mycss.css' />

定義されたパット

@Discomattが言ったように、PHPで定義されたパスを使用することは、物事を機能させ続けるための簡単な方法です。欠点; PHPを使用する必要があります。そのまま使えば問題ありません(^^)

define('CSSDIR', 'http://www.mysite.com/css/);
<link rel='stylesheet' href='<?= CSSDIR ?>mycss.css' />
于 2012-09-17T14:16:17.577 に答える
1

css ファイルの絶対パスを次のように記述します。

<link href="http://site.com/css/style.css" />

于 2012-09-14T22:49:23.700 に答える
0

トムの答えに基づいて、私はbase urlと PHPを組み合わせましたdefine(タイピングを減らすため)。

PHPのどこか:

define("HOST_BASE", "http://example.com/");

次に、ヘッダー ファイルで次のようにします。

<base href="<?php echo HOST_BASE ?>">

ベースタグは初めてで互換性が心配でしたが、問題なく動作しているようです。詳細については、 MDN を参照してください。

于 2016-03-05T17:28:26.843 に答える
0

このような:

<link rel="stylesheet" href="/css/style.css" />

最初/は「ルートディレクトリに行き、そこから見てください」と言います。相対パスです。

于 2012-09-14T22:47:15.790 に答える