rascutでswfobject.jsが404になる
rascutはActionScript絡みのファイルの変更を検出して, 自動コンパイルをしちゃうもの. さらにCometでコンパイル完了をWebブラウザに通知して, 自動ロードまでしちゃうにくいやつです. id:secondlifeさん++
だけどなんか画面が真っ白になるんですよね. Firebugを見るとswfobject.jsがない模様. 同じ症状が出ている人いっぱいみたいだね.
d:id:lifegood:20080928
g:actionscript:id:kusigahama:20080922:1222105950
ちなみにボクの環境は下記のとおり.
うーん, rascutによって起動されるHTTPサーバーがくさい. というコトでhttpd.rbを追ってみると, 31行目の:
if F.file?(@path) && F.readable?(@path)
で真にならない(真のときにステータスコード200となる). 詳しく見るとF.file?(@path)の時点でfalseとなる. てかファイルですらないって!
んで原因はその前の27行目:
@path = env["PATH_INFO"] == '/' ? @root : F.join(@root, env['PATH_INFO'])
もっと言うと:
F.join(@root, env['PATH_INFO'])
によって, ~js/swfobject.js/と最後にスラッシュが付く. んー, PathInfoが空であろうとjoinしているのが問題なのかなぁ?
というコトで:
@path = env["PATH_INFO"].empty? || env["PATH_INFO"] == '/' ? @root : F.join(@root, env['PATH_INFO'])
とか適当にF.joinを回避してやれば404とはならなくなりました. めでたしめでたし.