烤乾
之前網站中大量採用 wink 來建立 screencast 的 swf 檔案,建立過程中 wink 也會自動附有一個 HTML 檔,貪圖方便之下,往往只是上傳這兩個檔案後加個連結而已,但是這樣長久下來,
swf 檔案會越來越多,HTML 檔也增加,所以新的考量是如何 DRY 掉這些內容幾乎都是重複的 HTML 檔,改由單一樣板控制 ?
基本動作
1 . config/routes.rb
typo 沒有 default route 如 :controller/:action/:id ,另一個問題是最後設了個星號的 route,所以必須放在這個之上,下面採用 /showswf/name/width/height 的方式。
map.connect 'showswf/:name/:width/:height', :controller => 'showswf', :action=>'view'
map.connect '*from', :controller => 'redirect', :action => 'redirect'
2. app/controllers/showswf_controller.rb
class ShowswfController < ActionController::Base
def view
end
end
3. app/views/showswf/view.rhtml
<OBJECT CLASSID="clsid:xxxxxx"
WIDTH="<%= params[:width] %>" HEIGHT="<%= params[:height] %>"
CODEBASE="http://xxxx">
<PARAM NAME=movie VALUE="/files/<%= params[:name] %>.swf">
<PARAM NAME=play VALUE=true>
<PARAM NAME=loop VALUE=false>
<PARAM NAME=quality VALUE=low>
<EMBED SRC="/files/<%= params[:name] %>.swf"
WIDTH=<%= params[:width] %> HEIGHT=<%= params[:height] %> quality=low loop=false
TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://xxxxx">
</EMBED>
</OBJECT>
Update 2006-0907: 新增 HTML title 參數,因為這個字串對於看清楚 google analytics 報表很有用。
4. upload a resource
測試/showswf/radrails070_A1/980/622
待考量
新增一個 controller 來秀出已上傳 swf 資源,不知是否會在 typo 升級管理上出現問題 ?
Update 0817
新的 controller 會出錯,原因不明 ? 突然變成由 /usr/bin/ruby1.8 dispatch.fcgi 接手,而不是內建的 ruby dispatch.fcgi ?? 該問題也容易發生在中文亂碼上。解決方式變成必須把所有的 fcgi 程序都刪除。