0

こんにちは私は自分のローカルマシンで作業するために必要なspipウェブサイトを持っています。

すべてをコピーしましたが、サイトはすべてのデータベースで「機能している」ようです。

問題は、ベースのhrefセットがあると思うことです。

ヘッダーのスタイルシートは次のようにリンクされていました。

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

Webサイトフォルダではなくローカルホストのルートに移動するため、機能していませんでした。

ただし、これへのリンクを(スラッシュなしで)変更すると、完全に機能します。

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

問題は、サイトにたくさんのリンクがあり、それらがすべてこのように機能していることです。これを引き起こしている原因を確認できる場所はありますか?ベースのhrefセットがどこにも見つかりません。また、htaccessファイルは効果がないようです。

4

2 に答える 2

3

スラッシュ()で始まるリソースURLとリンクhrefは、値/を使用しません。<base href="xyz">これらは、ホスト/ドメインパスのルートからリソースをフェッチするようにブラウザに指示します。

たとえば、次の場合:

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

<!-- style sheet 1 -->
<link rel="stylesheet" type="text/css" href="/css/style.css" />

<!-- style sheet 2 -->
<link rel="stylesheet" type="text/css" href="css/style.css" />

style sheet 1URLはホストドキュメントのルートを示すものhttp://mysite.com/css/style.cssで始まるため、ベースのhref値に関係なくからフェッチしようとします。/

style sheet 2ただし、ベースのhref値を使用して、http://mysite.com/res/css/style.css

可能な解決策

  1. HTML / PHP / JSPなどを更新して、すべてのスタイルシートのURL、リンク、画像などから/プレフィックスを削除します。メモ帳++などの優れたエディタを使用して、これを見つけて置き換えることができるはずです。

  2. 醜い方法-ページが読み込まれた後、JSを使用してこれらのURLを変更します。これには、JSが実行を完了する前に、ユーザーに間違った/不完全なコンテンツが表示される可能性があるという問題があります。

于 2012-10-02T02:54:14.270 に答える
0

(絶対パス参照)で始まるURLは、ドキュメントがHTTPサーバー上にある場合、または絶対HTTP URLを参照するように/(タグを介して)ベースURLが設定されている場合にのみ役立ちます。ローカルHTMLドキュメント(タグbaseなし)でそれらを使用しようとすると、使用されるベースURLはURLになるため、のようなURLはとして解釈されますが、通常は機能しません。コンピュータのファイルシステム内のリソースのフルパス名。basefile:///foo/barfile://foo/barfoo/bar

したがって、ローカルで使用するためにダウンロード可能である必要があるサイトは、で始まるURLを使用してはなりません/

于 2012-10-02T05:45:11.973 に答える