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

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

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

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

5764閲覧

Heroku でcssが突然読み込まれなくなったので、改善方法を知りたい。

mofuo222

総合スコア14

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1グッド

1クリップ

投稿2017/07/31 15:26

初めまして、プログラミング初心者です。
railsで作成したアプリをHerokuにUPし、しばらく
CSSで見た目の調整等を行っておりました。

昨日、いつも通りにCSSの変更を行いHerokuにUPしたのですが、
CSSの変更が反映されなくなりました。
その後、何度か試しましたが、CSSの変更が全く反映されない状態です。

画像の追加は問題なく行えます。

心あたりとしては、

rake assets:precompile

を実行した後から、反映されなくなった気がします。

rake assets:precompile を実行したら、
public/assets 内に app/assetsディレクトリの中のファイルの内、.jsと.cssファイル以外の
全てのファイルが作成されました。

お恥ずかしながら、rake assets:precompile を実行した理由については
特に意味もわからず、実行してしまった感じです。

###以下、試したことです。
.gitignore の中に public/assets/*を記述しましたが、
特に改善されず。

.gitignoreの以下の部分に記述しました。

# See https://help.github.com/articles/ignoring-files for more about ignoring files. # # If you find yourself ignoring temporary files generated by your text editor # or operating system, you probably want to add a global ignore instead: # git config --global core.excludesfile '~/.gitignore_global' # Ignore bundler config. /.bundle # Ignore all logfiles and tempfiles. /log/* !/log/.keep /tmp public/assets/* ←ここに記述してみました。 /.env

あとは、以下のコマンド

bundle exec rake assets:clean

を実行すれば、
public/assets内のファイルが消えるという記事を見つけたのですが、
よく分かっておらず、実行できていない状態です。

改善方法がわからずに困っております。

改善方法をご教示頂けますと幸いです。
よろしくお願いいたします。

退会済みユーザー👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

通常railsでは自動でプリコンパイル(js, css群を一つのファイルにまとめてそれらにアクセスする回数を減らす)をしてくれるのですが、rake assetsコマンド打ってしまうと、質問者様のようにpublic以下に、ファイルが残ってしまいます。これの解決策としてはbundle exec rake assets:precompile ENV=productionをデプロイ前に実行するかpublic/assets以下を丸ごと削除して、gitにあげることです。

手間を考えるとassets以下を削除して、gitを更新するのが良さそうです。

投稿2017/08/01 02:41

daikitakaya

総合スコア229

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

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

daikitakaya

2017/08/01 02:44

本番環境とローカルの違いはプリコンパイルによって、ファイルを一つにまとめて*.cssや*.jsへのアクセスを減らすことで、それらのファイルへの余分なアクセスを減らしたり、それらのファイルの余分な余白を削除してくれるために高速化できるという利点があります。 turbolinksではそれらを利用して、さらに高速化しているというわけです。
mofuo222

2017/08/01 14:08

ご回答ありがとうございます。 public/assets以下のファイルを削除したところ無事に更新されました。 本当に助かりました。 ありがとうございました。
daikitakaya

2017/08/01 14:15

解決して、よかったです。ちなみにrake assetsするとlocalでもrakeコマンドを打たないと更新されなくな流ので、気をつけてください。.gitignoreにpublic/assetsを追記してあげるとproductionでこのようなことがなくなって良いですね アセットの仕組みは調べると面白いので、ぜひ。
guest

0

ブラウザで直接cssのURLにアクセスしてみてください。
http://localhost/xxxxxx/css/style.css
修正したcssが表示されますか?
またブラウザの管理者ツール(ChromeならF12)でそのcssが読み込まれていますか?
cssは200で返って来てますか?
304 not modified(更新されていない)になってませんか?
304の場合キャッシュを使っているので、キャッシュをクリアしてください。
簡単にクリアする方法はスーパーリロードをするとその画面に必要な情報はキャッシュをクリアして全て読み込みなおします。
windowsの場合 ctrl + shift + r
macの場合 Cmd + shift + r

まずはパスとキャッシュを疑ってください。

投稿2017/07/31 15:34

Tak1016

総合スコア1408

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

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

mofuo222

2017/07/31 16:30

早速の回答ありがとうございます。 ローカル環境では問題なく反映されます。 スーパーリロードも試しましたが変化がありませんでした。 状況を再度整理させていただきますと、 ローカル環境だと、更新したCSSファイルが読み込まれるが、 本番環境だと、CSSファイルは読み込まれているが、 更新前のCSSファイルが読み込まれている。 という状況です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問