baserproject / basercms

baserCMS : Based Website Development Project
http://basercms.net
Other
165 stars 126 forks source link

【システム】言語設定がサーバーキャッシュに依存される問題 #1288

Open Diwamoto opened 4 years ago

Diwamoto commented 4 years ago

概要

https://forum.basercms.net/t/topic/189/4 こちらより上がってきたissueになります。

baserの言語設定でブラウザの設定よりキャッシュが優先されてしまいます。

以下、手順です。

  1. 新規baserCMSの「日本語の」ローカル環境にて、サブサイトを作成。「サブサイトで言語設定を利用する」設定を有効にする。
  2. 管理画面にログインしていない別のブラウザで言語設定を英語に変更し確認。正常に変換されている。
  3. 同ブラウザにて言語設定を変更するが、元に戻らない(キャッシュが読まれている為)。また、さらに日本語の設定になっている別ブラウザで開くと英語のサイトが表示される
  4. 管理画面にログインしているブラウザでサーバーキャッシュを削除。
  5. 最初に言語設定を変更したブラウザで確認すると言語設定が変更されていた。

キャッシュを無効にすれば正常に言語設置が有効になります。 この投稿からはサブサイトからの発見でしたがこちらの検証でメインサイトでも同様の現象を確認しました。

baserCMS version : 4.2.4

TODO

最適解が分からないので思いついた案をいくつかあげます。

  1. ブラウザの言語設定の変更を検知する。
  2. 言語設定ごとのキャッシュを用意する。
  3. キャッシュの中身は言語設定が当たる前のデータにしておき、ブラウザに表示するときに言語設定を適用するように改修する。
yama commented 4 years ago

@Diwamoto @ryuring 言語設定ごとのキャッシュを用意するアプローチがよさそうに思いますが、それでよければ改修してみます。いかがでしょうか?

ryuring commented 4 years ago

@yama そうですね。僕もその方がよいと思いました。 改修可能であればよろしくお願いします〜