緩存和頁面顯示,這是最後一個部分了,真沒想到一個連載竟然用了幾個小時。累了...
外部鏈接和跟蹤
如果想對外部網站資源進行鏈接和跟蹤,可以使用如下的helper方法:
Ruby代碼
external_link_to(text,url) external_link_to(image_tag(image),url)
這兩種生成鏈接的方法(一種是文字鏈接,一種是圖形鏈接)都可以對鏈接情況進行日志記錄。如果將environment.rb文件中的$USE_EXTERNAL_LINK_POPUPS 參數設置為真,外鏈接將一彈出框形式存在。下面的參數可以傳遞給Url
Ruby代碼
:new_window=>true or false -- determines if link appears in new browser window (defaults to true) :show_only_if_link=>true or false -- determines if image or text is shown if no URL was supplied (defaults to false) :show_link_icon=>true or false -- determines if the external icon image is shown after the link (defaults to true for text links and false for image links)
對於圖形,可以傳遞如下參數:
Ruby代碼
:alt=>'value' -- alt tag is set with the value passed :title=>'value' -- title tag is set with the value passed
對於當前來說,還沒有提供對外部鏈接跟蹤情況的報表。所有的鏈接跟蹤情況通過 "external_link_logs" 數據庫進行存儲。
部分緩存機制
部分緩存功能需要配置文件設置,才能啟用(config/production.rb)並且要打開存儲機制
如下:
Ruby代碼
config.cache_store = :mem_cache_store, '10.0.0.1:11211', '10.0.0.2:11211'
緩存設置如下:
Ruby代碼
config.action_controller.perform_caching = true
靜態頁面首先將被緩存。主頁面的緩存周期是一個小時。或者通過 config/environment.rb文件的 $CACHE_CLEAR_IN_HOURS 參數定義
頭文件和導航欄的緩存通過動態的部分緩存,當改變的時候進行清除。
搜索功能的緩存,依賴與檢索類序,語言,和是否有審查的狀態,進行緩存。
當用戶用管理員或內容合伙人登錄的時候,頁面將不進行緩存。
進行緩存的項目如下:
Ruby代碼
- taxon_id - language - expertise level - vetted or all information - default taxonomic browser - curator for page
頁面緩存的過期,可以通過手動或服務器定時調用如下地址實現: They only work if called
Ruby代碼
localhost:3000/expire_all # expire all non-species pages localhost:3000/expire_taxon/TAXON_ID # expire specified taxon ID (and it's ancestors) localhost:3000/expire_taxa/?taxa_ids=ID1,ID2,ID3 # will expire a list of taxon IDs (and their unique ancestors) specified in the querystring (or post) parameter "taxa_ids" (separate by commas) localhost:3000/clear_caches # expire all fragment caches (if supported by data store mechanism)
對於應用程序內容,可以通過如下方法調用實現。
Ruby代碼
expire_all # expire all non-species pages expire_taxon(taxon_ID) # expire specified taxon id and ancestors (unless :expire_ancestors=>false is set) expire_taxa(taxon_ID_array)# expire specified array of taxon ID and unique ancestors (unless :expire_ancestors=>false is set) clear_all_caches # expire all fragment caches (everything!)
頁面顯示插件ASSETT PACKAGER
(CSS and JS)
asset_packager 插件的詳細介紹, 可以參考 http://synthesis.sbecker.net/pages/asset_packager
如果你想在自己項目中引入一個javascript文件,那麼你需要編輯"config/asset_packager.yml"文件 並且需要按照加載的順序放置。項目通過一個Rake任務對Css和Js文件管理和組合需要指出的是,在config文件中Js文件的順序要和組合時的順序一致。
當更新Js/Css代碼後,要通過rake 任務進行更新。
如下:
Ruby代碼
rake asset:packager:build_all
在產品模式下,這個rake命令是做為capistrano部署命令的一部分。
做為測試目的,你也可以強制在config/environments/development.rb" 或 "config/environment.rb"中增加
Ruby代碼
Synthesis::AssetPackage.merge_environments = ["development", "production"]
控制台屬性
1. 通過ConceptID看屬性
Ruby代碼
t=TaxonConcept.find(101)
2. 查詢等級
Ruby代碼
he_all=t.hierarchy_entries OR he=t.entry (for the default)
3. 查詢相關等級
Ruby代碼
h=he_all[0].hierarchy # OR h=he.hierarcy h.label h.agent.full_name h.agent.hompage h.agent.logo_cache_url
4. 查詢相關等級的agents
Ruby代碼
agents=he[0].agents # OR agents=he.agents agents.each {|agent| puts agent.full_name + " " + agent.homepage + " " + agent.logo_cache_url}
文檔
項目並不是通過svn repo來產生文檔。所以,用戶需要如下得到:
Ruby代碼
template=`allison --path` rake doc:reapp
寫在最後:
終於寫完了,還是比較有收獲的。