- ベストアンサー
JavaScriptの外部ファイル読み込みについての問題
- PHPからサーバー上のJavaScriptファイルを読み込めない問題が発生しています。
- jquery-1.4.2.min.jsの読み込みに失敗し、jQueryが使えません。
- ブラウザでJavaScriptファイルを開こうとすると真っ白なページになります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
以下の情報からの推測ですが、 まず、my-sv.netのサーバーは http://www.my-sv.net/server.shtml Apache 2.2系を使ってますね。 さらに、質問者様と似たような問題を起こして解決された方で、 http://forum.jquery.com/topic/can-t-load-jquery-on-apache Apacheの設定にて、 1.;EnableMMAP off 2.;EnableSendfile off にすると直ったと書かれています。 さらに、EnableMMAPについて調べてみると http://heppoko.blogdns.net/?p=3262 ネットワークマウントされた DocumentRoot (例えば NFS や SMB) では、 カーネルは自身のキャッシュを使ってネットワークからのファイルを 送ることができないことがあります。 と書かれています。 また、質問者様が試された、255Byte以上のファイルにて失敗されていると いうことですよね。 ご存知かと思いますが、DocumentRootは通常、Apache WebサーバーのRootフォルダーの デフォルトフォルダーになりますから、DocumentRoot以下に多くのファイルが集まるため 容量は大きくなります。 そのため、ネットワーク経由に大容量のディスクを持った別のLinuxサーバーを立て そのLinuxサーバーのDocumentRootフォルダーを大元のサーバーにマウントすると いう運用は十分に考えられます。 これらの事を総合して推測するに、 ・ApacheがjQueryのファイルを転送するのに複数のサーバー間での ネットワークでの転送が起こる ・サーバーでは、ファイルを転送するのに通常はキャッシュを使ってしまう ということが推測されます。 と、なると、 ・サーバーのカーネルのキャッシュをオフにしてもらう ・Apacheがネットワーク転送でサーバーの設定を使わないように設定してもらう どちらかの対応が必要かと思います。 サーバーのカーネルのキャッシュをオフにしてしまうと、高速なファイル転送が妨げ られる可能性もありますから、 後者のApacheの設定を変更してもらうようサーバー管理者に問い合わせては いかがでしょうか? 具体的には、上記のように、httpd.conf内で 1.;EnableMMAP off 2.;EnableSendfile off をする。という事です。 もし、これで直らなかったらごめんなさい。 DBが使える他のサーバーがサクッと見つかるといいのですけどねぇ。
その他の回答 (2)
- noris02
- ベストアンサー率74% (56/75)
255バイト・・・・ これだと ほぼ何もできない気がする 255kバイト・・・ どちらにしても jsだけ読めないということですね。 邪道・そして 重い方法・お勧めできないかもしれない方法ですが、、別のレンタルサーバーにjs をおいて (もちろん管理者 は本人のもの!!マナーです) それを読みに行く・・ それでもできなかったら、サーバーが何か仕掛けてるとしか。。
お礼
ありがとうございます! ご教授のとおり、別のレンタルーサーバーにおいたJavaScriptを指定すると動作しました。 また、レンタルサーバーの管理人さんに事情を話したところを、現象を把握し、対処してくれるとのことでした。 ですので、原因が判明するまではnoris02さんに教えていただいた方法で対処したいと思います。 どうもありがとうございました。
- noris02
- ベストアンサー率74% (56/75)
はっきりしたことは 私にはわからないのですが、 <meta http-equiv="Content-Script-Type" content="text/javascript"> と jquery-1.4.2.min.js の ファイル名を jquery.js に変更して 試してみるとどうなりますか? バージョン残しておきたい場合は jquery.js?ver=1_4_2 など。
補足
ご連絡ありがとうございます! ご指摘の2点を早速試してみましたが、現象は変わらずでした。。 自分で色々試したところ、そのレンタルサーバーに255Byte以上のJavaScriptファイルをアップロードするとそのファイルは読み込めないようです。 255Byte以下のJavaScriptファイルでは読み込みができ、動作も確認することができました。 レンタルサーバーの問題なのでしょうか。。 それとも利用しているFTPソフト(FileZilla)が関係しているのでしょうか。。
お礼
ご教授ありがとうございます! サーバーかApacheの問題の可能性が高いのですね。。 用語については後々調べようと思います。 今、管理人さんが原因を把握し、対処してくれてるそうなので、 その結果をまずは待つことにしました。 それで厳しそうなら、無料じゃないレンタルサーバーを利用しようかなと。。 どうもありがとうございました!