モノノフ日記

普通の日記です

sfLightboxPluginとキャッシュ

sfLightboxPluginを使って画像を表示させてるページをキャッシュすると
キャッシュが無い場合だと普通にjavascriptが動くけど、
キャッシュが有る場合だとキャッシュ画像を参照しちゃってlightboxが動いてくれない。
どうしたもんか。キャッシュ使わないようにするしか無いのかな。

コードはこんな感じです。

  • sfLightboxPlugin
symfony plugin-install http://plugins.symfony-project.com/sfLightboxPlugin
<?php
use_helper('Lightbox');
echo light_image(
  'http://yourdomain.com/images/foobar_medium.jpg',
  'http://yourdomain.com/images/foobar_large.jpg',
  array('title' => 'foobar')
); ?>
  • cache.yml
_lightbox_show:
  enabled:     true
  contextual:  true
  lifetime:    86400

追記

id:brtRiverさんがコメントしてくれているようにaction内でsfLightboxPluginが呼び出しているリソースを追加してやれば画像をキャッシュした状態でもLightboxが動いてくれました。

action内に追加
<?php
  // Lightbox specific
  $response = $this->getResponse();
  $response->addJavascript(sfConfig::get('sf_prototype_web_dir'). '/js/prototype');
  $response->addJavascript(sfConfig::get('sf_prototype_web_dir'). '/js/effects');
  $response->addJavascript(sfConfig::get('sf_lightbox_js_dir'). 'lightbox.js');
  $response->addStylesheet(sfConfig::get('sf_lightbox_css_dir'). 'lightbox.css');