2012年1月15日日曜日

Google Sites で javascript ファイルを設置した場合の問題について

Bloggerで使用する javascript の設置場所として、多くの人が Googleサイト を利用していると思います。しかし Googleサイト を利用した場合、大きな落とし穴があります。今回はこの問題について、簡単な記事にします。

Bloggerblogspot.com) にブログを開設した時に、外部JavaScriptファイルやCSSファイルをどこに設置すべきか悩むことになる。これは画像ファイルなら Picasaウェブ がありアップロードも簡単なのだが、JavascriptやCSSファイルを設置できるようなサービスがBloggerには無いためである。

この時、ファイルの設置場所としてよく使われるのが、Googleサイト だ。Googleサイトはホームページの作成・運用サービスなのだが、ファイルをアップロードすることも可能だ。無料で利用できるため、javascript等のファイル置き場としてよく使われている。

Googleサイトに javascriptファイルを設置した場合の問題

通常、Bloggerで Googleサイトに設置した javascriptファイルを指定した場合、特に問題無く実行される。それでは、問題があるというのは、どういった状況だろうか?。

Bloggerではカスタムドメインを設定すると、blogspot.com 以外のドメインの利用が可能だ。この設定を行ない、Google以外のドメインにすると、Googleサイトに設置した javascriptファイルの利用ができなくなる。

参考: カスタムドメインの設定画面

Bloggerの「設定」メニューの「基本」→「公開」
「カスタムドメインを追加」→「詳細設定」

つまり Googleサイト で設置した javascript 及び CSS ファイルは、Googleドメイン内では利用可能だが、Googleドメイン外では利用できないということのようだ。

参考
Javascript not working. Hosting it at google sites.
javascript and style sheet stored in GS

この時の挙動は結構おかしな所がある。カスタムドメインを設定したブログのページでは、Googleサイトに設置したjavascriptファイルは動かない。しかしブラウザの別タブで Googleサイトのページを開くと、なぜか javascriptファイルが動作するようになる。

いずれにしても、動かないというのが結論のようだ。

カスタムドメインを設定した bloggerブログで javascriptファイルを動作させるには

この問題は、Javascriptファイルを Googleサイトに設置していては解決しない。Google側の設定が問題なので、Javascriptの外部ファイルはGoogleサイト以外のホストに設置すればよい。

今回参考にした書き込みでは、yourjavascript.com にアップロードすればよいと書 いてある。しかし yourjavascript.com では CSSファイルが設置できないようだ。このため他のサービスを探してみるのがよいだろう。Googleなら Google App Engine でも設置が可能だと思う。今回私は Dropbox に設置してみた。もちろん低価格のレンタルサーバもあるので、お金を出してそちらに設置してもよいかもしれない。


今回の問題は何かが解決したというより、できないことが分かったという記事でした・・・。Bloggerでカスタムドメインを設定する場合は気をつけてください。