• ベストアンサー

外部ファイルを読み込ませるための記述方法を教えてください!

(1)index.html (2)「index.html」以降のページのフォルダ(の中にhtml) (3)css.js (4)cssファイル を同じ階層に置いています。 htmlには<SCRIPT LANGUAGE="javascript"src="css.js"></SCRIPT> と書かれており、css.jsファイルからcssファイルを読み込み htmlにcssが適用されてるように設定されています。 この階層のhtmlにはcssが反映されるのですが (2)のフォルダの中のhtmlにとってはcss.jsの階層は一つ上になるのですが、 <SCRIPT LANGUAGE="javascript"src="css.js"></SCRIPT> と書いてもcssが反映されません。 srcの指定を正しくするにはどのように記述したらいいのでしょうか? <SCRIPT LANGUAGE="javascript"src="../css.js"></SCRIPT> と記述してもダメでした。 Javascriptの言語がほとんどわからず困ってしまっています。 大急ぎで知りたいのですが、わかる方いらっしゃいましたら 教えてくださると大変助かります。 どうかよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.4

#1です。 >>元のhtml >とはどういう意味なのでしょうか? 外部Javascriptファイルの呼び出し元という意味でした。 (省略し過ぎてわかりづらかったですね) 外部Javascriptファイルcss.jsで'abc.css'を適用するように書いた場合 index.html で 'css.js'を呼び出すとabc.cssは同じ階層(フォルダ)にあるので問題なく読めるはずですが xyz/hoge.html で '../css.js'を呼びしても、'../abc.css'にはアクセスせず、フォルダxyzの中のabc.cssにアクセスしようとします。(見つからないのでCSSが適用されない。) つまり外部Javascriptファイルで他のファイルへの相対パスを書いても、外部Javascriptから見た相対パスではなく、外部Javascriptファイルを呼び出した元のhtmlからの相対パスとしてアクセスします。 なので、(パス+)ファイル名等を設定する部分にhttp://~ とurlを書いてしまえばどの階層(フォルダ)から呼ばれても同じようにアクセできるようになるはずです。 (わかり易く書きたいとは思うのですが、やっぱりわかりづらいですね ~_~;)

yoigoro
質問者

お礼

再び丁寧なお答えありがとうございました。 わかりやすい説明のおかげでよく理解する事ができました! ぜひその方法で試してみようと思います♪

その他の回答 (4)

  • trisagion
  • ベストアンサー率68% (15/22)
回答No.5

#2です。 絶対パスではサーバーにアップしないと確認できないと思います。(ローカルな環境にapache等をインストールして、そこで試していれば別ですが) フルパス(URL表記)ではインターネットにつながった状態なら確認できると思います。(もちろん指定したアドレスにcssやJavaScript等の各ファイルが置いてあればですが)

yoigoro
質問者

お礼

URL表記方法にした方が良さそうとのお声もあり、 ネット上で確認してみようと思います。 再びありがとうございました!

回答No.3

<SCRIPT LANGUAGE="javascript"src="css.jsファイルを置いているフォルダの名前/css.js"></SCRIPT> つまりcss.jsファイルを置いているフォルダがscriptというフォルダ名なら <SCRIPT LANGUAGE="javascript"src="script/css.js"></SCRIPT> これでできるのではないかと思いま~す。

yoigoro
質問者

お礼

色々なご意見を参考にした結果、 URLを表記してみます。 ご協力ありがとうございました♪

  • trisagion
  • ベストアンサー率68% (15/22)
回答No.2

試してないので自信はありませんが、フルパス(http://xxx.ne.jp/xxxx/css.js)や絶対パス(/css.js)でファイルを指定してはどうでしょうか? css.jsの中(JavaScript中)のcssファイルのパスもそうした方が良いかもしれません。

yoigoro
質問者

補足

回答ありがとうございます。 絶対パスではうまくいきませんでした・・・。 そこでフルパスでの指定の場合、 サーバーにアップしてみないと 反映されているかわからないのでしょうか? まだアップできていないのです。 また質問してしまいすみません・・。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

index.html(TOPページ?)とその他のファイルでは階層が違うのですね? で、あればJavascriptの中でcssをリンクする部分で http://~/xxx.css と、相対パスではなく、URLを書くのが手っ取り早いと思います。 同じJsファイルからの呼び出しでも、元のhtmlの階層が違うと相対パスが違ってしまうので、どこから呼び出しても読めるようにするのは面倒です。

yoigoro
質問者

補足

回答ありがとうございました。 しかしながら理解が出来ておりません・・・。 >元のhtml とはどういう意味なのでしょうか? 根本的に知識がなさすぎるもので ご迷惑おかけします。

関連するQ&A

専門家に質問してみよう