0

クライアント用にアップグレードする完全な Web サイトをダウンロードしました。
コードがファイル (css、js、画像など) を見つけられないことに気付きました。パスは、先頭にスラッシュを付けて、次のようにコーディングし/ます。/ 各 href 、 src などの先頭からそれらを削除する
と、ローカルマシンの問題は解決しますが、もちろんオンラインで問題が発生します。

これはローカルでは機能しません:

href="/design/layout.css"

これは(最初のスラッシュを削除)

href="design/layout.css"

この違いの理由は何ですか?両方のサーバーでパスを同じように処理するために構成する必要がある、ある種のシステム変数はありますか?

4

1 に答える 1

3

相対 URL の先頭にがある場合/、ドメインの Web ルートへの絶対パスとして解決されます。

絶対パスの例 (先頭に / を含む):

domain.com/test/other/path/test.html のファイル内
href="/design/layout.css"-> ブラウザで検索domain.com/design/layout.css

domain/test.html のファイル内
href="/design/layout.css"-> ブラウザで検索domain.com/design/layout.css

結論 絶対パス
ブラウザは両方とも同じ場所を検索します。

相対パスの例 (先頭に / なし):

domain.com/test/other/path/test.html のファイル内
href="design/layout.css"-> ブラウザで検索domain.com/test/other/path/design/layout.css

domain/test.html のファイル内
href="design/layout.css"-> ブラウザで検索domain.com/design/layout.css

結論 相対パス
ブラウザはさまざまな場所を検索します。


解決

.htaccess または.conf ファイルにApache エイリアスを追加できます。これにより、サーバーは最初のパスを要求するときに 2 番目のパスのコンテンツを強制的に出力します。あなたの場合、Apache は /design/ の代わりに新しいパスから CSS ファイルを出力します

Apache エイリアスの例

Alias /design /your/new/path/design
于 2011-05-12T15:06:52.597 に答える