Googleマップブロックで「Unable to display map: google is not defined」

2017年8月1日 at 11:37

5.7.5.13 を使用しています。

Googleマップブロックで、ログインした状態では地図が表示されるのですが、ログアウトすると下記のエラーとなります。

Unable to display map: google is not defined

ここで、Googleマップブロックの「期間限定ゲストアクセス」を有効にすると、地図が表示されます。
ブロックの権限は、「ブロックを表示:ゲスト」となっています。

OSは、Windows10
ブラウザは、IE11、Edge、Firefox、chrome です。

今はこれで地図が表示されているのですが、何か気持ち悪いので投稿させていただきました。

タグ:

Re: Googleマップブロックで「Unable to display map: google is not defined」

2017年8月1日 at 11:48
Google Map API キーの設定はされていますよね?
 

Re: Googleマップブロックで「Unable to display map: google is not defined」

2017年8月1日 at 11:52
はい。
念のため、ブロック編集の「Check API Key」ボタンで確認してみたところ、「Valid API Key」と表示されました。
 

Re: Googleマップブロックで「Unable to display map: google is not defined」

2017年8月3日 at 17:20
ふむ・・・聞いたことが無いエラーですね・・・。
他の JS とバッティングしてるってことはないですよね・・・。
 

Re: Googleマップブロックで「Unable to display map: google is not defined」

2017年8月3日 at 18:13
「期間限定ゲストアクセスを有効にすると地図が表示される」としておりましたが、その設定はあまり関係ないようで、翌日には同様のエラーで表示されなくなりました。
Googleマップブロックの権限を操作すると表示されるようになり、一度表示されると、ログインしていない他のブラウザからアクセスしても表示されるようになります。
ちなみに、エラーが出て地図が表示されないときは、Google Map API が読み込まれていませんでした。

なお本日は、すべてのキャッシュを無効にして、キャッシュをクリアした状態で確認を行っていますが、昨日はキャッシュが有効になっていました。
キャッシュの影響で状況が正しく確認できていなかった可能性があるので、キャッシュ無効の状態で様子を見てみます。
 

Re: Googleマップブロックで「Unable to display map: google is not defined」

2018年5月10日 at 12:44
先日、8.3.2 にアップグレードしたところ、また同様のエラーが出るようになりました。

「ブロックキャッシュ」を「無効」にすると問題なく表示されます。

下記は有効のままでも問題ないようでした。
・Theme CSS Cache
・Compress LESS Output
・CSS と Javascript キャッシュ
・オーバーライドをキャッシュ

「期間限定ゲストアクセス」は設定していません。
「フルページキャッシュ」は無効です。

テストしたのは、Windows10上の、IE11、Edge、Firefox、Chromeです。
キャッシュ設定変更後、キャッシュをクリアし、各ブラウザの履歴をクリアして確認しています。

GoogleMapブロックのためだけにブロックキャッシュを無効にするのもどうかと思っています。
何かよい回避方法があれば教えてください。
 

Re: Googleマップブロックで「Unable to display map: google is not defined」

2018年5月10日 at 13:37
テーマを変えても同じでしょうか
 

Re: Re: Googleマップブロックで「Unable to display map: google is not defined」

2018年5月10日 at 14:28
稼働中のサイトなので、深夜にこっそり「エレメンタル」に変えて試してみます。
確認してこちらで報告します。
 

Re: Googleマップブロックで「Unable to display map: google is not defined」

2018年5月13日 at 0:35
テーマを「エレメンタル」に変更してみましたが、同じエラーとなりました。
・ブロックキャッシュをオンにしたのち、キャッシュをクリア
・ブラウザは「プライベートウィンドウ」で開きなおして確認
 

Re: Googleマップブロックで「Unable to display map: google is not defined」

2018年5月10日 at 13:09
ブラウザの開発ツールなどを使って、 Javascript でエラーが出ていないか、確認できますか?
 

Re: Googleマップブロックで「Unable to display map: google is not defined」

2018年5月10日 at 13:15
稼働中のサイトなので、深夜にでもこっそり確認してこちらで報告します。
 

Re: Re: Googleマップブロックで「Unable to display map: google is not defined」

2018年5月13日 at 0:42
try-catch文が入っていてコンソールに何も出てこなかったので、catch文にスタックトレースを組み込んでみたところ、下記のようになっていました。
(profile は、Googleマップブロックが配置してあるページのスラッグです)

ReferenceError: google is not defined
at googleMapInit56bbc84645646ebb8c (profile:418)
at startWhenVisible (profile:450)
at HTMLDocument.<anonymous> (profile:455)
at j (jquery.js:2)
at Object.fireWith [as resolveWith] (jquery.js:2)
at Function.ready (jquery.js:2)
at HTMLDocument.J (jquery.js:2)


ブロックキャッシュを無効にすると、エラーが出ずにGoogleマップが表示されます。