解決済みの質問
テキストエディタでhtmlを書いています。
外部cssを使うので、
<link rel="stylesheet" href="style.css" type="text/css">
をヘッダ部に入れていますが、これより上に
<base href="~">
で基準URIを指定しようとすると、cssが反映されなくなってしまいます。
先に
<link rel="~
を入れてしまうと、文法チェックで引っ掛かるのですが、どうしたら良いのでしょうか?
ソースは、
<Head>
<base href="絶対パス">
<link rel="stylesheet" href="style.css" type="text/css">
で、この後にmeta属性を入れています。
よろしくお願い致します。
投稿日時 - 2009-10-26 00:23:12
2人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(3件中 1~3件目)
よくわからないならbaseは書かないでおくのがいいんですがねぇ。
<base href="http://www.somewhere.com/~nobody/index.html">
と書いてあるHTMLファイルがあるとして、そのHTMLファイルの中に
<link rel="stylesheet" href="style.css" type="text/css">と書
いてあったら、HTMLファイルが世界中のどこにあっても参照される
スタイルシートはhttp://www.somewhere.com/~nobody/style.cssに
なります。HTMLファイルと同じディレクトリを指すとは限りません
ね。
というわけで、あなたのパソコン上で動作確認をしたくても、base
要素にサーバのアドレスを書いちゃったからにはサーバ上のファイ
ルを探しにいきます。不毛なのでbase要素を書くのはヤメましょ
う。何も書かなければ、閲覧しているHTMLファイルの場所が基準に
なります。
投稿日時 - 2009-10-26 20:51:42
お礼
再度、ありがとうございます。
そうですよね。初めは、それまで見えていたものが突然見えなくなってしまったので、「!?」だったのですが、落ち着いて良く考えたら、サイトアドレスを基準にしているのだから、サーバに上げない限り見られないのかな、と思いました。
当たっていたようで良かったです。
何も書かない方向でも検討してみます。
ありがとうございました。
投稿日時 - 2009-10-27 10:51:38
念のため確認ですが、linkで指定するスタイルシートのURIは、
baseで指定した基準URIを考慮したものになってますよね?
htmlファイルとcssファイルと基準URIの位置関係を図示して
もらえますか。
投稿日時 - 2009-10-26 07:53:59
補足
ありがとうございます。
素人ですので、
> linkで指定するスタイルシートのURIは、baseで指定した基準URIを考慮したもの
が、よく分かりません。
申し訳ございません。
ファイル名を間違っていないか、と言うことでしょうか?
htmlファイルとcssファイルは、同じフォルダの中に存在します。
現在は編集中で、サーバにアップせず、動作確認をしている最中なのですが、サーバにアップする時も、ファイルをそのまま一緒に放り込む予定です。
ちなみに、基準URIとなるページのファイル名が、
index.html
cssのファイル名が、
style.css
で、本やサイトで調べたところ、基準ULIは(この場合)、
"絶対パス/index.html"
とするようなのですが、試運転用にアップしてあるダミーのindex.htmlファイルに対して、絶対パス(サーバ提供のサイトアドレス)でブラウザからアクセスすると、アドレスバーには/index.htmlの部分が表示されませんので、<base href="絶対パス">の"絶対パス"の中身は、サーバ提供のサイトアドレスのみで、/index.htmlを挿入していません。
これは入れるのが正しいのでしょうか?
もしそうであれば初めから的外れなことをしているようで申し訳ないのですが、よろしければ教えて下さい。
どうぞよろしくお願い致します。
投稿日時 - 2009-10-26 09:27:12