RSS

cakephpのajaxzip2について

16 2月

javascriptのキャッシュが残っていたせいで「IE7と8でajaxzip2動かない;;」とかトンデモ発言した義男さんです。スミマセン・・・。ちゃんと動きます。問題ないでス。いやぁ反省しました。。。よく検証しようね自分。

今日、cakephperさんが今日ちょうどajaxzipの記事を書いていて、ずーっと先延ばしにしていたちょっとした要件を思い出した。

  • ajaxzip2を現在、会社の開発環境で使用している
  • だが、ただ設置しただけだと動作しなかったのでちょっとした修正がいるらしい。
  • で、修正した結果、「適当」な修正になってしまい、SVNにあげるかどうしようかと思っていた
  • という状況でした。で、せっかく思い出したので社内でどうしようか、と相談してみたところ、解決策を講じたのですが今日そのソースわすれた…凹○ とりあえず状況の説明だけ。でもって初歩的な原因だったのですが恥さらし的にアップしておこう。相当恥ずかしいなこれ。
    住所検索用にajaxzip2を導入しています。app/webroot/js/配下にダウンロードしたファイルを設置。
    app/webroot/js/ajaxzip2/ajaxzip2.jsに以下のような記述があります。

    var url = AjaxZip2.JSONDATA+'/zip-'+zip3+'.json';
    

    で、これだと動かないので

       //var url = AjaxZip2.JSONDATA+'/zip-'+zip3+'.json';
       var url = ‘/js/’+AjaxZip2.JSONDATA+’/zip-’+zip3+’.json’;
    

    こう修正してね!とあるんだが、これでも動かない。ガーン。で、苦肉の策で/var/www/html/配下のフォルダを指定。

       //var url = AjaxZip2.JSONDATA+'/zip-'+zip3+'.json';
        var url = '/cake/js/'+AjaxZip2.JSONDATA+'/zip-'+zip3+'.json';
    

    これで動いたのでほったらかしにしてたんだけど、あこれ解決しないといけないな…と思いつつ今日に至った。
    結論としては

  • webrootをどこに設定してんだよ!
  • ってことで(今自宅なので会社の設定がみれないが)テストサーバーはwebrootを/var/www/html/にしてるようで
    開発してるときも、localhost/cake/で見てるわけですから、こりゃ当然だよおっかさん…。で、サイトを作る場合は、hogehoge.comがwebrootになるわけだから皆さんが書いてるような修正方法で良いんだけど、いくつもコンテンツが乗っかるようなサービスの場合はやっぱりフォルダ名を指定しないといけないってことなのか…?と思っていたりいなかったり。で、解決策としてはcakephpのフォルダ名を書かずに逃げ切った対策を今日講じてきたんだけどソース忘れたよってことです。っつーかURLからパスを切り取ってJSONファイルのパスに貼り付けるとかそういう対処なのでたいしたことではないんだけど。

    ちなみに、今日cakephperさんが書かれたブログは、ajaxzipの要素をIDにすることでモデル名+フィールド名の記述を回避するというもので、非常にためになったのでした。書き方がシンプルだし、人に教えるときに間違いが減るのではないかと思います。

    これと上記の調査を一緒にやってたら修正箇所があやふやな状態でキャッシュが残ってアワワワワワ…な結果になってトホホだったわけでした。

    広告
     
    コメントする

    投稿者: : 2月 16, 2010 投稿先 cakephp, javascript

     

    コメントを残す

    以下に詳細を記入するか、アイコンをクリックしてログインしてください。

    WordPress.com ロゴ

    WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

    Twitter 画像

    Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

    Facebook の写真

    Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

    Google+ フォト

    Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

    %s と連携中

     
    %d人のブロガーが「いいね」をつけました。