2012-04-22 5 views
0

私はルートフォルダにCSSファイルを持っていて、そのパスを基準にしてファイルを参照しています。例えばCSSスタイルシートのパスは、ファイル自体の場所に固執していますか?

は、次のように召喚、1つのフォルダにimage.pngとともにstylesheet.css:

background-image:url('image.png'); 

私は、次のようindex.htmlをに添付する場合:

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

を.. 。それはうまくロードされますが、サブフォルダのファイルに添付したい場合:

<LINK rel="stylesheet" type="text/css" href="../template_style.css"> 

...テンプレートがロードされますが、実際には、それが起動されたhtmlファイルのフォルダ内のimage.pngを探し、cssファイル自体のフォルダからは探しません。

これには修正がありますか?

答えて

1

CSS相対パスは、CSSファイル自体を基準にしたものであり、CSSファイルをロードしたページではありません。

私は通常、CSSファイルを/ cssに、CSS画像を/ css/imagesに入れます。そして、あなたは比較的ようなあなたのイメージを置くことができます。ドメインまたはサブドメインである場合

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

background-image:url('images/image.png'); 
+0

ああ、私は間違っています。移動するHTMLファイルから直接呼び出されたファイルが読み込まれず、CSSテンプレートから読み込まれたファイルが正常に読み込まれているようです。私はちょうど私のHTMLファイルを修正する必要があります。ありがとう! – Anonymous

2

はこれであなたのhead

<base href="http://www.example.com/">を追加し、あなたが必要とするすべての追加ですあなたのcssが公共のルートフォルダ(http://www.example.com/stylesheet.css)の中にある場合、hrefはstylesheet.cssである必要があります

0
<link rel="stylesheet" type="text/css" href="../(supposed to be subfolders name)/template_style.css"> 

同じ画像の場合は、同じフォルダ内にある場合は、同じフォルダまたは同じ場所に両方ともCSSと画像があることを確認してください。

background-image:url("../image.png"); 

あなたが別のイメージフォルダを作成すると、それは火事になります。

background-image:url("../folder name/image.png"); 
関連する問題