ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:toatouto base hrefとlink rel
困り度:
  • すぐに回答を!
テキストエディタで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属性を入れています。
よろしくお願い致します。
質問投稿日時:09/10/26 00:23
質問番号:5396879
最新から表示回答順に表示

回答

 

回答者:taloo base hrefからの相対パスで<link>を指定するか、
絶対パスか絶対URLで<link>を指定してください。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:09/10/28 04:47
回答番号:No.4
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼ありがとうございます。

回答

 

回答者:aides そもそも何の為に「base」を記述するのでしょうか?
他に代替処置が不可能な状態なのですか?

文法上baseの前にlinkを入れてもエラーには成らない事を言明して置きます。
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:09/10/26 23:02
回答番号:No.3
この回答への補足ありがとうございます。
テキストに書いてあったので、入れた方が良いのかと思って書いたのですが。
そもそも不要なタグなのでしょうか?
素人ですので、

> 他に代替処置

が、よく分かりません。
申し訳ございません。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:grumpy_the_dwarf よくわからないなら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ファイルの場所が基準に
なります。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:09/10/26 20:51
回答番号:No.2
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼再度、ありがとうございます。
そうですよね。初めは、それまで見えていたものが突然見えなくなってしまったので、「!?」だったのですが、落ち着いて良く考えたら、サイトアドレスを基準にしているのだから、サーバに上げない限り見られないのかな、と思いました。
当たっていたようで良かったです。
何も書かない方向でも検討してみます。
ありがとうございました。

回答

 

回答者:grumpy_the_dwarf 念のため確認ですが、linkで指定するスタイルシートのURIは、
baseで指定した基準URIを考慮したものになってますよね?
htmlファイルとcssファイルと基準URIの位置関係を図示して
もらえますか。
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:09/10/26 07:53
回答番号:No.1
この回答への補足ありがとうございます。
素人ですので、

> linkで指定するスタイルシートのURIは、baseで指定した基準URIを考慮したもの

が、よく分かりません。
申し訳ございません。
ファイル名を間違っていないか、と言うことでしょうか?
htmlファイルとcssファイルは、同じフォルダの中に存在します。
現在は編集中で、サーバにアップせず、動作確認をしている最中なのですが、サーバにアップする時も、ファイルをそのまま一緒に放り込む予定です。
ちなみに、基準URIとなるページのファイル名が、

index.html

cssのファイル名が、

style.css

で、本やサイトで調べたところ、基準ULIは(この場合)、

"絶対パス/index.html"

とするようなのですが、試運転用にアップしてあるダミーのindex.htmlファイルに対して、絶対パス(サーバ提供のサイトアドレス)でブラウザからアクセスすると、アドレスバーには/index.htmlの部分が表示されませんので、<base href="絶対パス">の"絶対パス"の中身は、サーバ提供のサイトアドレスのみで、/index.htmlを挿入していません。
これは入れるのが正しいのでしょうか?
もしそうであれば初めから的外れなことをしているようで申し訳ないのですが、よろしければ教えて下さい。
どうぞよろしくお願い致します。
この回答へのお礼この回答にお礼をつける(質問者のみ)
最新から表示回答順に表示