1
zendのフロントコントローラからの応答を受け取ったとき、またはコンテンツがクライアントに送られる前にhtml/jsコードを圧縮したい。zendフレームワークで私はHTMLレスポンスの空白と改行を削除したい
このコードをview source
に表示すると、Googleには表示されないすべてのコードが表示されます。
この
zendのフロントコントローラからの応答を受け取ったとき、またはコンテンツがクライアントに送られる前にhtml/jsコードを圧縮したい。zendフレームワークで私はHTMLレスポンスの空白と改行を削除したい
このコードをview source
に表示すると、Googleには表示されないすべてのコードが表示されます。
この
は、あなたは、レスポンスのボディを取得し、それを操作し、それを縮小化した後、本体を設定することができ、そこからdispatchLoopShutdown中に実行pluginを作成することができます達成するための方法があります。ここで
は一例です:あなたのブートストラップで
<?php
class Application_Plugin_ShrinkSource extends Zend_Controller_Plugin_Abstract
{
public function dispatchLoopShutdown()
{
// get the output that will be sent to the client
$body = $this->getResponse()->getBody();
// remove extra whitespace, and other cleanup
$body = someFunctionToRemoveWhitespace($body)
// set the modified content back to the body
$this->getResponse()->setBody($body);
}
}
あなたがお返事のため
Zend_Controller_Front::getInstance()
->registerPlugin(new Application_Plugin_ShrinkSource());
こんにちはおかげのようなプラグインを登録することができます。それは本当にうまくいった。あなたはもう一つのことで私を助けてくれますか?私はまた、スペースを削除した後に来るデータをgzipしたい。私はここでそれを行うことができます –
私は[この回答](http://stackoverflow.com/a/8566657/892493)で提供されるコードはそれには良いと思います。 Apacheがあなたのためにやっているか、ブラウザがgzipエンコーディングを受け入れるかどうかを確認してください。もしそうなら、コンテンツエンコーディングヘッダとgzencodeをあなたのボディに送ります。また、gzエンコードされた応答の長さを含むコンテンツ長ヘッダを追加する必要があります。 – drew010