3

Vitrualbox の CentOS VM で Zend Server を実行していますが、リンクされた JS および CSS アセットが「キャッシュ」されるという問題があります。「キャッシュされた」と言うのは、本当の意味でキャッシュされているわけではなく、JS または CSS ファイルにコンテンツを追加すると、コンテンツが破損し、変更が表示されないためです。代わりに、ファイルには一連の悪い文字が追加されます。

layout.phtml (zend フレームワーク テンプレート)

$this->headScript()->appendFile ('/js/admin/product.js', 'text/javascript' );

これは以下をレンダリングします:

<script type="text/javascript" src="/js/admin/product.js"></script>  

products.js

        //re-add scrolling handles
        scrollThumbs.reSortThumbs(ul);
        product.moveFileInput(ul);
    };
};��������������������������������������������������

JS または CSS ファイルからコンテンツを削除すると、結果は不完全なファイルになり、上記のような不適切な文字が追加されません。

私はすべての形式の Zend キャッシングをオフにし、Zend Optimizer もオフにしました。ブラウザのキャッシュを削除し、いくつかのブラウザを試しました。

サーバーに ssh 接続し、ファイルを再確認しました。ファイルは完全にフォーマットされており、変更が含まれています。Zend Server ( /usr/local/zend/bin/zendctl.sh restart) と Apache ( ) をservice httpd restart再起動してみました

これを修正する唯一の方法は、OS 全体を再起動することです ( reboot)。興味深いことに、変更を削除すると、正常に動作するように戻ります。サーバー側のどこかで何らかの形のキャッシュが発生しているとしか思えません。

4

3 に答える 3

4

これは Virtualbox 共有フォルダーの問題であり、Zend Server に固有の問題ではなく、一般的な Apache の問題であることが判明しました。

修正は、VirtualBox for Apache の Shared フォルダーから行われました。

EnableSendfile offvhost ファイルに追加します。

<VirtualHost *:80>
    DocumentRoot "/mnt/your/shared/dir"
    ServerName Default

    <Directory "/mnt/your/shared/dir/public">
        EnableSendfile off
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
于 2012-06-02T03:22:10.117 に答える
0

これは、ブラウザのキャッシュがオンになっていて、ファイル名が同じままであるためです。これは、スクリプトでmd5_file()を使用してこれをCookieに保存し、リクエストごとにCookieが変更されたかどうかを確認することで回避できます。この場合、フロントエンドファイルが変更された場合のケースを管理できます。

于 2012-05-26T12:23:12.077 に答える