12

私の問題の症状は、この質問とほぼ正確に一致します。変更された静的ファイルは、新しいサイズにトリミング/パディングされ、古いサイズで提供されます - Fedora

静的ファイル (.js や .css など) に変更を加えるたびに、それらの変更は提供されたファイルに表示されません。ただし、私の変更によりファイルの長さが変更された場合、提供されるファイル新しい長さと一致します。

  • 静的ファイルの任意の場所から文字を削除すると、提供されたファイルは最後にその文字数分トリミングされます。
  • 静的ファイルの任意の場所に文字を追加すると、提供されたファイルの最後に多くの � (U+FFFD) 文字が埋め込まれます。

リンクされた回答で問題が解決しない理由は、Apache を使用していないためです。私は Heroku 用の Python Web アプリを作成しているので、gunicorn と Flask (したがって Werkzeug) を使用しています。リンクされた回答によると、Apache で sendfile を無効にすると問題が解決したため、このページのように「USE_X_SENDFILE」変数を False に設定しようとしましたが、役に立ちませんでした。また、何らかのキャッシュが発生するのを防ぐために、「SEND_FILE_MAX_AGE_DEFAULT」を 1 に設定しましたが、それも役に立ちませんでした。

明らかでない場合は、Web サーバーの構成についてまったく知らないので、関連する Google のヒットを使い果たしたので、何が原因なのか途方に暮れています。ヘルプ?

4

2 に答える 2

4

Virtualbox は sendfile を嫌います。オフにすれば動作するはずです。

たとえば、nginx では、sendfile: off;. Apache ではただのEnableSendfile off.

于 2015-08-21T13:59:51.017 に答える
2

最終的に、これはおそらく VM の問題が原因であることが判明しました。問題のコードは Windows ドライブにありましたが、共有ディレクトリ経由でコードにアクセスする Linux VM 内から提供されていました。共有を再マウントすると、問題が解決したように見えます (ただし、必ずしも確実ではありません)。

于 2013-09-02T14:36:20.427 に答える