uploadify.swf を javascript と同じディレクトリに置くつもりで、
/vendors/js/uploadify/uploadify.swf に配置すると、
swf ファイルの読み込みに失敗する。
(1) /vendors/js/uploadify/uploadify.swf .................... x
(2) /app/vendors/js/uploadify/uploadify.swf ................ o
(3) /app/webroot/js/uploadify/uploadify.swf ................ o
(1) の失敗は
// cake/dispatcher.php
function dispatch()
{
...
if ($this->cached($url))
{
$this->_stop();
}
cached() 内の mime type のチェックで swf がはじかれていることが原因。
$assets = array(
'js' => 'text/javascript',
'css' => 'text/css',
'gif' => 'image/gif',
'jpg' => 'image/jpeg',
'png' => 'image/png'
);
この中に swf が含まれていないから。
'swf' => 'application/x-shockwave-flash'
# Web server MIME types required for serving Flash movies
#
http://kb2.adobe.com/cps/415/tn_4151.html
を追加すれば難なく通るが、では、(2),(3) では何故出て来ないのか。
(1) は cake アプリケーション全体に適用可能なので、キャッシュさせとこう
というところだろうが、(2),(3) では何故このチェックが働いていないのか?