プロジェクト

全般

プロフィール

QA #301

Redmine のVerUp時に画面レイアウトが崩れる場合がある

奈良 裕記7ヶ月前に追加. 2ヶ月前に更新.

ステータス:
回答済
優先度:
通常
担当者:
-
カテゴリ:
-
対象バージョン:
開始日:
2017/02/16
期日:
進捗率:

0%

予定工数:

説明

■現象/要望

Redmine 2.x→3.xへVerUpした時に画面レイアウトが崩れる場合がある
(再現性不明)

■解決策

1.下記パッチ実行
Defect #24617: Browser js/css cache remains after upgrade
http://www.redmine.org/issues/24617

2.ブラウザのスーパーリロード実行
>IEの場合Ctrl+F5
>Firefoxの場合Ctrl+F5
>Chromeの場合Shift+更新ボタン(Ctrl+Shift+R)

■対応状況

修正パッチ24617は3.4.0で対応された。

但し、未対応部分の下記指摘もある。
http://www.redmine.org/issues/24617#note-12

This patch doesn't seem to effect @import url(../../../stylesheets/application.css); in themes,
so I still have to add a Cache-Control header.

標準組込のAlternate,Classic テーマの場合、@import で application.css を読み込んでいるため、上の問題に影響される可能性がある。

■原因

RAILS4.2の仕様変更
RAILS4では、assetpipelineを利用する方向に変更されているが、Redmineでは使用していない。

>・Ver2.xの時は、JSやCSSにセッションIDらしき数字がURLに付加されている
> ⇒問題なし

>・Ver2.x→3.xへパッチを当てずにVerUpすると、JSやCSSにセッションIDらしき数字は付加されない
> ⇒画面レイアウトが崩れる

>これは Redmine 3.0.0 から Rails のバージョンが 4.2 へ移行した際に、
>CSS や JavaScript などの静的ファイルに付与されていた GET パラメータが付与されなくなったため、
>前バージョンの静的ファイルをブラウザ側がキャッシュとして持っていること(=そちらが表示に利用されている)が原因のようです。

ブラウザ上キャッシュのヒット可否で現象が変化するため、、再現性不明のトラブルになります。

■補足

関連情報

Redmine 2.x→3.xへVerUpした時に画面レイアウトが崩れる症状に対する対応方法
http://forza.cocolog-nifty.com/blog/2017/02/redmine-2x3xver.html

Redmine3.3で表示崩れする件で色々教えていただいた
http://ucwd.jp/blog/807

>ブラウザの super reload でゆけそうな気がする。
>職場の Redmine も 2.x から 3.x 系に移行して更に 3.x で数回更新しているが
>毎回 super reload するよう案内してる。
http://b.hatena.ne.jp/entry/321963648/comment/akabekobeko

君は3つのリロードを知っているか? - os0x.blog
http://os0x.hatenablog.com/entry/20110617/1308280740

アセットパイプライン
https://railsguides.jp/asset_pipeline.html

履歴

#1 奈良 裕記7ヶ月前に更新

  • 説明 を更新 (diff)
  • 対象バージョン本家patch有 にセット

#2 奈良 裕記7ヶ月前に更新

  • 説明 を更新 (diff)

#3 奈良 裕記7ヶ月前に更新

  • 説明 を更新 (diff)

#4 奈良 裕記7ヶ月前に更新

  • 説明 を更新 (diff)

以下、問題提起

RAILS4対応-Redmine3.0(2015/2)からの潜在的問題が、2016/12に下記で指摘されるまで残っていた訳で、考える必要があると思う。

Defect #24617: Browser js/css cache remains after upgrade
http://www.redmine.org/issues/24617

■見逃し原因

クライアント側Webブラウザのキャッシュ状態に依存する動作になるから、
テストで検出するためには、Webブラウザ(相当)のキャッシュ状態を、
取り得るパターンに制御する必要があると思われる。
その点を設計しなければテストでの検出は無理。

変更内容の設計検証が必要では?
(特に外部の大幅な変更への対応における影響)

RAILS5対応で同様の事にならないか。

#5 奈良 裕記2ヶ月前に更新

  • 説明 を更新 (diff)
  • ステータス新規 から 回答済 に変更

3.4.0で対応されたが、下記指摘があったので記入

http://www.redmine.org/issues/24617#note-12

#6 奈良 裕記2ヶ月前に更新

  • 題名Redmine 2.x→3.xへVerUpした時に画面レイアウトが崩れる場合がある から Redmine のVerUp時に画面レイアウトが崩れる場合がある に変更

#7 奈良 裕記2ヶ月前に更新

  • 説明 を更新 (diff)

他の形式にエクスポート: Atom PDF