4

Mac OSX(Snow Leopard)でVagrant /VirtualBoxVMを使用してローカルで実行しているRailsアプリのHAML/SASSを変更していますが、参照されている画像に変更を加えるたびに、非常に奇妙な問題が発生し続けます。 HAML/SASSファイルの。

何が起こるかの例を次に示します。

  • ブラウザでローカルのRailsアプリページを開くと、すべての画像が正しく表示されています
  • 画像のサイズを変更して(Gimpを使用)、画像を小さくして変更を保存します
  • ページを更新して変更を確認しましたが、元の画像は引き続き表示されていますが、画像をどれだけ小さくしたかに比例して下部が切り取られています
  • ディレクトリから画像ファイルを削除し、ページをハードリフレッシュして何が起こるかを確認します。
  • 元のカットオフ画像がまだ残っている場合もあれば、消えて画像パスアイコンが表示されない場合もあります
  • 画像ファイルをディレクトリに戻し、サイズ変更を強制的に取得しようとします
  • これが初めて機能する場合もあれば、正しいサイズの画像が表示されるまでに3〜4回実行する必要がある場合もあります
  • ページを更新して画像が表示されなかった後でも、古い切り取られた画像が再表示されることがあります。

画像ファイルに他の変更を加えている場合(たとえば、同じファイル名でまったく新しい画像を保存している場合)、同じ問題が発生するようです。この画像の問題は別として、HAML / SASSファイルへのすべての編集が機能し、変更を即座に確認できます。

ある種のブラウザのレンダリング/キャッシュの問題かもしれないと思いましたが、FirefoxとChromeでも同様の問題が発生します。Firebugを使用すると、正しいファイルが取得されているのに、ページ自体に表示されないことがあります。

これはVagrantと関係があるとしか思えません。それを完全に修正することが保証されている唯一のことは、Vagrantボックスを再作成することですが、それには長い時間がかかります。

RailsアプリとVagrant/VirtualBoxの構成に関係している可能性があるため、これは単純な問題ではない可能性があることを認識していますが、他の誰かが同様の問題を抱えている場合に備えて、ここに問題を投稿すると思いました。

ありがとう!

4

1 に答える 1

2

あなたがおそらく目にしているのは、VirtualBox共有フォルダファイルシステムがsendfilesyscallとともに抱えている問題です。sendfileVirtualBox共有フォルダーからファイルを提供している場合は、Webサーバーでの使用を無効にする必要があります。これを行うのは簡単です:

Apacheで、これを構成に追加します。EnableSendfile off

Nginxで、これを構成に追加します。sendfile off;

于 2012-03-29T16:20:53.813 に答える