質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

5回答

16344閲覧

cssファイルが更新されない (centos apache)

twin_bird

総合スコア230

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

2クリップ

投稿2015/09/10 15:13

編集2015/09/10 15:16

centos6.4にapacheをインストールしています。

いつから問題が生じたのかの分からないのですが、cssファイルがブラウザにて更新が反映されない状況です。

グーグルクロームのデベロッパーツールで確認したところ、ステータスコードは200番でした。
CSSファイル自体は読み込めているみたいなのですが、更新しても反映されません。
キャッシュを削除しても同様です。

おそらくapacheの設定に問題があるのではと思うのですが、どこをいじればいいのか今ひとつ検討がつきません。

回答お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

CSSの特定の設定が反映されない場合、可能性として 様々な原因が考えられるので、その可能性を 地道に一つずつ潰してゆくしか方法がないと思います。

この「チェックしなければならない可能性」(=関連する要素)がとても多いので、teratailのような質問サイトで質問する側にとっても、その質問へ回答しようとする側にとっても非常に厄介な問題です。
質問欄に記載された情報だけで、この回答欄にすべてを記載することはとてもできません。

しかしながら、たとえばCSS 反映しないのようなキーワードでちょっとググると、この厄介な問題のトラブルシューティングの方法を非常に分かりやすく解説してくださっているページが多数ヒットします。
いくつかご紹介致しますので、そちらを参考に地道に取り組んでみてください。
CSS/スタイルシートが反映されない原因
効率的なCSSトラブルシューティング
CSSが反映されない原因いろいろ

他にも色々な情報がありますけれども、どんな情報を参考にトラブルシュートするにせよ、解決の妨げとなる一番の要因は思い込みです。

たとえば目視で同じと判断するのではなく、たとえば記載されているパスをコピペして lsコマンドでファイルの存在を確認してみるとか、セレクタ名をコピペしてテキストエディタへ貼り付け、上下に並べてみたり、文字列検索でヒットするかどうかをみるなど、極力機械的に確認してみてください。

また、直接関係のない(と思われる箇所)を一旦コメントアウトしてみて、他の記述が副作用をもたらしていないかを順番に確認して行くという方法も有効です。言い換えると調査の範囲を限定して問題点を一つずつ潰してゆくということです。

範囲が限定できれば、ソースの問題となっている箇所を貼り付けることで、teratailでより具体的な質問をすることもできるようになります。

どうぞ頑張ってください。

投稿2015/09/10 19:37

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

twin_bird

2015/09/11 03:56

回答ありがとう御座います。 機械的な確認方法を心がけていきたいと思います。 ある程度そのような方法をとっていたのですが、「部分的に今まで出来ていたのに」という思い込みがありました。
guest

0

自己解決

可能性を限定的にすることができず、回答しづらい質問にもかかわらず、たくさんの回答をありがとうございました。私としてはとても勉強になりました。
キャッシュに目をつけて、apacheの設定をとりあえず見なおしてみました。
「CSSファイル apach 更新されない」などと検索したところ、以下の様な方法を見つけました。

・httpd.confでEnableMMapとEnableSendfileの設定をOFFにする

<Directory “/var/www/html”>

EnableMMAP Off

EnableSendfile Off

</Directory>

こちらの方法を試してみたところ、更新(CSSの記述)が反映されるようになりました。

たくさんの回答ありがとうございました。

投稿2015/09/11 04:34

twin_bird

総合スコア230

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

試行錯誤して無理な場合、闇雲にやっても同じ事を繰り返したり正しい環境の状態を壊しかねません。
zipなりtarなりコピーなりでサーバ側の状態をバックアップして問題となるであろう箇所の切り分けをしていくと良いと思います。

ネットワーク環境
社内LANなどでProxyを通してアクセスしていないか?
Proxyキャッシュされていないか?

クライアント環境
ブラウザキャッシュのクリアをしてみる。

サーバ環境
XXX.cssをリネームしてみます。
サーバより $wget http://xxxxx/yyy/XXX.css で該当ファイルが無いことを確認します。
404/NotFoundでファイル取得できなければApache側は白です。
200/OKでファイル取得できたらApache側の設定を見直し。
Apache側でCache設定が行われていないか確認します。

その他、勘違いに関する部分
Apache, ブラウザともに期待した通りに最新のCSSファイルが読み取れているのに反映されていないと勘違いしている場合もあります。
pi-chanさんの回答が参考になります。

投稿2015/09/10 20:48

CharmSystems

総合スコア241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

twin_bird

2015/09/11 03:59

回答ありがとうございます。 ファイル取得はできていました。cssファイルへの単独のアクセスなどで確認済みです。 apache側のキャッシュの設定を見なおしてみます。
guest

0

たぶん情報不足で解答しづらい気がします。
その状況で普通にやったら更新されると思うので。

更新したと思ってるCSSファイルと、ブラウザからアクセスしているCSSファイルは同じものですか?
パスが間違ってたりしませんか?

ブラウザのキャッシュ削除は正しくできてますか?
Ctrl+F5がダメなら、Ctrl+Shift+R、それでもダメなら、設定から履歴の削除で。

フレームワークを使っているなら、フレームワークがキャッシュしているのかもしれません。

別のCSSファイルを仮につくって、更新してみても、やはり更新されないですか?

それで解決しなければ、apacheのせいなのかも。
「apache キャッシュ css」で検索してみては。

投稿2015/09/10 16:08

lightwill

総合スコア962

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

twin_bird

2015/09/10 16:46

ブラウザからアクセスしているファイルと更新したいファイルは同じで、パスも正しいことは確認済みです。 キャッシュ削除は設定の方からすべて削除してみたのですが、ダメでした。 フレームワークは、ブートストラップを使用しているのですが、それらを一度切ってみてもダメでした。 別のCSSファイルを作ってみたところ、更新は問題無く反映されました! (test.cssというファイルをつくりました) 一方で、ブートストラップのCSSのファイルは更新が反映されませんでした。 apacheのキャッシュが問題でしょうか?
lightwill

2015/09/10 22:09

別のCSSファイルの更新が反映されたのなら、 問題のCSSファイルのみの問題と考えられるので、apacheの問題ではなさそうですね。 CSSファイル単独でアクセスしても更新は反映されないのでしょうか。 http://xxx/xxx.css 単独で反映されたなら、それを読みこんでるhtmlやらフレームワークやらの問題。 ちなみに更新が反映されないというのは、記述が反映されないの意味ですよね? 見た目が反映されないの意味ならば、また違ったアプローチになります。
guest

0

css変更前のファイルが読めているなら、設定は問題ないと思われます。

CentOS上からwget等でcssを直接取得しても、更新されていませんか?
更新されていなければ、更新したcssの置き場所を間違えているとかないでしょうか?

chromeのデベロッパーツール上でもcssは古いままですか?
ここで更新されているなら、cssの変更内容が間違っていて見た目に反映されていないだけかもしれません。

投稿2015/09/10 15:24

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

twin_bird

2015/09/10 15:58

回答ありがとうございます。 wget で css を取得するというのはどういうことでしょうか? デベロッパーツール上ではcssは古いままでした。
退会済みユーザー

退会済みユーザー

2015/09/10 16:05

CentOS上でサーバを立てているなら、そのサーバのコンソールからwgetコマンドでcssのダウンロードができるかと思います。 それを試してみた結果がどうかなと思ったのですが、デベロッパーツール上でも古いcssなのでしたら、やはり更新するファイルを間違えているのではないでしょうか? あとは、htmlから読んでいるcssのリンクに hoge.css?0104 のようにクエリーを付けてみても変わらないでしょうか?ステータス200なので、たぶんこれを付けなくても読み込んでいるはず・・・。 なのでやっぱり更新するファイルを間違えているんじゃないかなと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問