1

ブラウザーのサポートに関して、html<base>タグは安全に使用できますか? または、PHP でルート パスを生成し、このように追加<a href="<?=BASE?>somepage.html">somepage</a>して絶対 URL を構成する必要があります。

このようなベースタグ<base href="<?=BASE?>" />を使用すると、このようなリンクを使用できます

<a href="somepage.html">somepage</a>

ベースタグを使用せずにこれを行う方がはるかに簡単であることを完全に認識しています。

<a href="/somepage.html">somepage</a>

しかし、 http://localhost/testsite/のベース URL を使用してローカルでテストするにはどうすればよいですか ???

編集: 皆さん、stackoverflowコミュニティをとても素晴らしいものにしてくれたあなたたちに感謝します:)

4

4 に答える 4

1

あなたは確かにこれにいくつかの考えを与えましたが、私はミックスにもう1つの考慮事項を投げたいと思います。Webアプリケーションを作成している場合は、将来任意のサブディレクトリにインストールできるように構築する必要があります。これにより、ほとんど変更を加えることなく機能し続けることができます。

これは、href、src、action、さらにはHTTPLocationヘッダーでさえそのような変更を認識する必要があることを意味します。だから私はあなたのURIの前にあなた<?php echo SITE_BASE ?>がそれを呼びたいものを付けることをお勧めします。

SITE_BASEに末尾のスラッシュを含める必要があるかどうかについては、議論が激化する可能性があります。

于 2010-04-22T18:39:08.077 に答える
1

PHPタグでベースディレクトリを出力する最初のオプションが好きです

<a href="<?=BASE?>somepage.html">somepage</a>

最善。これにより、サイトがインストールされているディレクトリから独立します (共有ホスティング パッケージの仮想ホスト設定を変更できない場合があります)。必要に応じて、画像ファイルを別のサーバー/サブドメインに簡単に外部委託することもできます.

<base>ブラウザのサポートに関しては安全に使用できますが、コードの保守性の理由から、個人的には使用しないことを強くお勧めします。<base>URL の処理方法に関する規則を変更します。すべての相対 URLのベースを覚えておく必要があります。非常に見落としやすいです。プログラミングの観点からは、汚い修正のように感じます。

于 2010-04-22T18:30:57.360 に答える
1

私のアドバイスは、スラッシュで始まる絶対 URL を使用/localhost/testsite/し、ドキュメント ルートとして使用する仮想ホストをセットアップすることです。http://testsite/次に、絶対 URL を残して、ローカルなどでサイトにアクセスするだけです。

于 2010-04-22T18:32:05.773 に答える
1

2 年後にこの質問に戻ると、絶対 URL を処理する最善の方法は、URL をラッパー関数に入れることであることがわかりました。たとえば、次のようになります。

<a href="<?php echo url('/somepage.html');?>">somepage</a>

ラッパー関数により、URL 処理を完全に制御できます

function url($url){
    if(strpos($url,'/')===0){
        return 'http://localhost/testsite'.$url;
    }else{
        return $url;
    }
}
于 2012-10-02T15:02:05.300 に答える