現在外部Javascriptファイルと外部CSSファイルを用いてサイトを構築しています。CSSについてはJavascriptによって各ユーザエージェント毎に異なるcssファイルを呼び出すようにしてあります。

ところが、サーバに上げてIE6.0で確認したところ、CSSファイルもJavascriptファイルも読み込んできていないようなのです。ブラウザのキャッシュを全てクリアし直して試しても同様でした。
ローカル環境では同じIE6できちんと認識できています。
FIREFOX2.0.0.1ではサーバ上でもローカル上でも認識できており、FIREFOXの拡張機能のUserAgentSwitcherを使ってIE6になりすましても、認識できました。
htmlファイルDOCTYPEは
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
と指定しています。サーバ上でIE6.0が外部ファイルを認識しない原因はどういうものが考えられるでしょうか。
プロバイダに質問すると、ソフトウェアに関する問題なのでこちらでは分かりかねます、ということでした。

回答の条件
  • 1人3回まで
  • 登録:2007/02/21 17:19:49
  • 終了:2007/02/21 19:38:35

ベストアンサー

id:nyama No.1

のり回答回数86ベストアンサー獲得回数62007/02/21 18:27:03

ポイント55pt

html ファイルと JavaScript ファイルや css ファイルの文字コードが違っていて、かつ文字コードの指定がなされていない場合、文字化けして正常に読み込まれていないという場合が考えられます。

この場合、例えば、

<link href="hoge.css" rel="stylesheet" type="text/css" charset="utf-8">

<script type="text/javascript" src="fuga.js" charset="utf-8">

のように文字コードを明示してみてはどうでしょうか。

もちろん、この場合は実際のスクリプトや css のコードは、指定する文字コードにしておかなければいけません。

id:smegu

ありがとうございます!!

できました!!

<meta http-equiv="Content-Style-Type" content="text/css">

<script type="text/javascript" src="http://www.hoge.com/css/hoge.js"></script>

の部分に、使用している文字コードを明示したら、できました!

本当にありがとうございました!

2007/02/21 19:35:24

その他の回答(1件)

id:nyama No.1

のり回答回数86ベストアンサー獲得回数62007/02/21 18:27:03ここでベストアンサー

ポイント55pt

html ファイルと JavaScript ファイルや css ファイルの文字コードが違っていて、かつ文字コードの指定がなされていない場合、文字化けして正常に読み込まれていないという場合が考えられます。

この場合、例えば、

<link href="hoge.css" rel="stylesheet" type="text/css" charset="utf-8">

<script type="text/javascript" src="fuga.js" charset="utf-8">

のように文字コードを明示してみてはどうでしょうか。

もちろん、この場合は実際のスクリプトや css のコードは、指定する文字コードにしておかなければいけません。

id:smegu

ありがとうございます!!

できました!!

<meta http-equiv="Content-Style-Type" content="text/css">

<script type="text/javascript" src="http://www.hoge.com/css/hoge.js"></script>

の部分に、使用している文字コードを明示したら、できました!

本当にありがとうございました!

2007/02/21 19:35:24
id:kibitaki No.2

kibitaki回答回数53ベストアンサー獲得回数42007/02/21 18:51:20

ポイント50pt

まずIEのキャッシュフォルダを監視して、HTMLアクセス時に外部jsファイルが

読み込まれているかどうかの確認をしてみて下さい。

1.jsファイルがキャッシュフォルダにある=読み込まれている

 (でも期待した動作をしていない)

2.そもそも読み込まれていない

の切り分けが必要です。

1.のケースでは、外部サーバーにUPする際にFTPソフトが勝手にjsの文字コードを変更していたり、

IEで正しく読み込めないような(特殊な文字や改行コード、文法を使用した)ソースを

書いている可能性があります。

HTMLの文字コードとの整合も問題になるケースがあります。

また、外部サーバーだと通信速度やUAの設定により

ブラウザの挙動が開発環境とは異なるケースがあります。

2.では、ファイルを外部サーバーにはUPし忘れていたり、HTMLのソース不具合の可能性もあります。

ちなみに、jsでUAを判別しているのでしたら、FirefoxでUserAgentSwitcherを使用しても

jsはFirefox用のCSSファイルを呼び出します。

http://firefox.geckodev.org/index.php?User%20Agent%20Switcher

UserAgentSwitcherはリファラを偽装するので、UA判別jsにありがちな

if(document.layer){ }else{ }

のような処理には影響を与えません。

もし、HTML側でjsもUA毎に(HTMLにscriptを直書きして)振り分け呼び出しをしていたら、

そちらのパス指定やソースも確認する必要があります。

id:smegu

本当に丁寧な回答をありがとうございました。

「ちなみに、jsでUAを判別しているのでしたら、FirefoxでUserAgentSwitcherを使用してもjsはFirefox用のCSSファイルを呼び出します。」

そうだったのですか。恥ずかしいです。勘違いしていました。

原因を順を追って確認するべきですね。

勉強になりました。本当にありがとうございます!

2007/02/21 19:37:17
  • id:smegu
    質問内容に書き忘れたので追加を。ヘッダ部分はこのように書いています。
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang="ja">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
    <meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
    <title>タイトル文言</title>
    <meta http-equiv="Content-Style-Type" content="text/css">
    <script type="text/javascript" src="http://www.hoge.com/css/hoge.js"></script>
    </head>

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません