在使用 Aibol框架的時候 學到很多 也發現很多細節上的不足,記錄下來日后可以小心回避
1.ajaxmin css/js壓縮工具問題
這個工具可以集成到vs中,在項目打包或者編譯的時候就會自動按照配置好的腳本進行CSS/JS壓縮,用起來還挺方便的,不過由于太方便,很多細節不注意,導致出現很多靈異現象。這里總結一下使用注意點
首先要安裝 ajaxmin
配置文件在 “項目名.csproj” 文件中,用編輯器打開
配置文件在最下面
- 由于VS編譯/發布會生成一份緩存的臨時文件在 obj文件夾下 導致 如果不好好配置 會生成”雙份JS“
原因是配置文件的匹配規則會匹配到所有符合條件的目錄,“PackageTmp”中的文件自然也被視為目標文件進行壓縮,從而導致JS文件雙倍的現象.
解決方案就是 配置 Exclude 過濾掉這個目錄. 如圖
- 最后 由于ajaxmin如果找不到指定文件進行壓縮會報錯,所以新項目如果復制了老的配置文件,也請在目錄下面建一個空的JS ,當然 最好每次都重新手寫
2.git 忽略文件添加
項目中由于使用ajaxmin,所以每次都會有多個min.js的文件顯示被修改,其實毛都沒動.提交到git上完全沒有意義,手動撤銷又略顯麻煩,畢竟每次都會有.所以要這樣做
打開項目下的 .gitignore 文件
添加代碼
# min.js & min.css
**/Content/az/*.min.css
**/Scripts/system/*.min.js
**/Scripts/pages/*.min.js
**/Scripts/zh-cn/*.min.js
**/system.min.js
**/pages.min.js
**/zh-cn.min.js
意思為 忽略滿足條件的文件,如果需要排除個別想要的文件 可以單獨添加
!request.min.js
以感嘆號開頭 表示取反 就是不忽略的意思,更多配置可以看我的blog
這樣 以后自動生成的文件/測試的上傳文件,都不會進入到git倉儲中了
3.stash
多人開發的時候經常遇到代碼需要同步,而手頭上的修改還沒做完,如果提交上去就會導致其他人無法運行,或者僅僅是有一個優先的BUG要處理,而手頭的修改會影響BUG的修復,這個時候就需要用 git 的 stash 暫存功能,可以保存修改到一半的代碼 在sourceTree中可以很方便地操作,或者用命令行操作也很簡單
希望開發團隊以后每次commit都能認真描述修改內容,多個修改保存多個單獨commit,保證開發過程的可回溯性(千萬不要改了一天了 才想起來commit,把一萬個修改保存在了一起)
4.如果是ajax請求權限不足 則返回 json數據 而不是返回一個網頁html.
開發過程中遇到很多ajax請求報錯了,但是不彈窗,一看,原來返回值是一整個document--把forbidden頁面給返回了,然后拿不到指定的message無法正確提示給用戶操作
原因是權限過濾器 [AccessRestriction("List")] 只考慮了頁面的請求 無法對ajax進行正確的返回
所以我修改了一下代碼
文件中 添加如下代碼段
這樣就能讓權限過濾器識別是否是ajax 給出正確的返回值(在江淮項目中測試過,效果良好,不知道能不能加入aibol基礎框架)