3

次のファイル構造があります。

On server 'site1.com':
- images\background.jpg
- index.html

On server 'site2.com':
- css\main.css

site1.com の「index.html」ファイルで、site2.com/css/main.css のスタイルシートを参照しています。

ファイル「main.css」には、次のルールがあります。background-image: url(images/background.jpg);

問題は、ファイル 'index.html' が背景として 'background.jpg' をロードしていないことです。どうすれば修正できますか?background-image: url(site1.com/images/background.jpg);スタイルシートのルールに絶対パスを書くしかないのでは?

前もって感謝します。

4

4 に答える 4

8

完全なリンクbackground-image: url(http://site1.com/images/background.jpg); を使用し、絶対パスにはドメインが含まれていません。絶対パスの例background-image:url(/images/background.jpg);

于 2012-07-05T18:17:57.077 に答える
1

現在の設定:

On server 'site1.com':
    - images\background.jpg
    - index.html

On server 'site2.com':
    - css\main.css

ファイル 'index.html' は、'background.jpg' を背景としてロードしません。これは、 main.css&background.jpgが別のドメインにあるためです。

REASON:
相対パスを記述する と、サーバーは、これらすべての相対パスがに対して相対的であり、を使用しているファイルに対して相対的ではないimages/background.jpgと想定します。これは存在しないため、画像はロードされません。main.css*.html*.phpmain.cssimages/background.jpgsite2.com/images/background.jpg

解決策:で相対パスを記述して使用
するbackground.jpgには、 にフォルダを移動してみてください。 index.htmlbackground-image: url(images/background.jpg);imagessite2.comrelative pathmain.css

この場合の設定は次のとおりです。

On server 'site1.com':
    - index.html

On server 'site2.com':
    - css\main.css
    - images\background.jpg

CSS ルールは次のようになります。

background-image: url(../images/background.jpg);

つまり、現在のディレクトリ ( css) から 1 つ上のディレクトリに移動し、そこに移動しimagesbackground.jpg背景画像として使用します。

于 2012-07-16T05:20:44.797 に答える
1

CSS ファイル内で参照される URL は CSS ファイル自体に関連しているため、site1.com から background.jpg は読み込まれません。そのため、CSS で画像ファイルの完全な URL を使用するか、サイト固有のスタイルを含む追加のスタイル シートを読み込むことができます。

最初に site2.com から CSS をロードし、次に site1.com から CSS をロードします。この場合、site1 CSS ファイルの唯一のスタイルは次のようになりますbackground-image: url(images/background.jpg);。この新しい CSS ファイルは site1.com でホストされているため、images フォルダーを正しく参照します。

于 2012-07-05T18:22:27.390 に答える
0

唯一の解決策は完全な URL を使用することですが、クライアント側またはサーバー側の機能で画像 URL を処理することを妨げるものは何もありません。

于 2012-07-05T19:27:32.040 に答える