項目目標部署環境:CentOS 7+css
項目技術點:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginxhtml
開源地址:https://github.com/wmowm/nh.core前端
上篇咱們已經講了權限管理的實現,傳送門:mysql
此次我換一種講解,項目與博客,二者同時進行,gogogojquery
第一步,找個酷炫的登陸頁面linux
本身寫頁面是不可能的,這輩子都不可能的,設計又不會,css又不精通,只有在jq22上面偷頁面才能維持的了生活的樣子nginx
最近的那個貓頭鷹捂眼睛挺火啊,就是它了,先偷回來,再本身改造git
先在mvc項目裏建立一個登陸github
話說.net core添加視圖是真心慢啊,要等半天,趁這時間吐槽一下web
頁面也很是簡單,抄襲過來是這個樣子,咱們對它改造一下
改造效果以下
坑1字體圖標問題
我也不知道它這個字體圖標怎麼選,先F12看看它是什麼玩意
原來是這個,百度一下,如今最新的都是4.7了,我之前用的是4.4,乾脆直接把之前的拿來用了
如今繼續去實現驗證碼功能,仍是用咱們比較熟悉的GDI+繪製圖片
在.net core裏須要引入ZKWeb.System.Drawing包,據說部署到linux上,會有毛病,這個咱們後面部署的時候再說
每次點擊驗證碼,都會獲取新的圖片,而後把這個驗證碼md5加密保存到session裏面
HttpContext.Session.SetString("pic_code", pic_code);//存入session
會直接報錯
Session 尚未在這個應用程序或請求中配置好。
直接百度就好,園子裏大神真是多,我是參考這篇文章實現的
如今作一個簡單的提交,之前咱們都是習慣這樣ajax提交表單,.net core裏已經沒有了這種方式,那沒辦法,咱們只有換一種形式了
據說jquery-ajax-unobtrusive.js這個插件不錯,用的玩玩,效果還不錯
<form asp-controller="Home" asp-action="Login" data-ajax="true" data-ajax-mode="replace" data-ajax-loading="ValidateLog" data-ajax-success="tips(data)" data-ajax-method="post" class="container offset1 loginform">
驗證碼成功,就跳轉到home/index頁面,失敗就刷新驗證碼,並給出提示
//登陸回調函數 function tips(data) { if (data.status == "0") { window.location.href = data.returnUrl; } else { $("#imgcode").attr("src", "/Home/GetAuthCode?time=" + Math.random()); alert(data.msg); } }
咱們繼續優化它,還須要一個好看的loading,直接去jq22上面找,而後整合到外面項目中來
放在這裏,效果仍是挺不錯的,而後完美繼續優化彈出的提示框
作到這裏基本上實現了整個功能,先將它發佈到Linux上,看看效果
苦逼了,nginx這塊尚未弄好,如今是一次只能代理一個端口,晚上繼續研究
2018-4-25 8:21
關於nginx,網上資料不少,是本身弄複雜了,如今簡單說下
最後一段,引入服務器的配置信息,它會讀取/conf.d/目錄下全部包含conf後綴的配置文件
default.conf 內容以下:
這裏代理轉發了兩個站點,映射端口分別爲8081與80,如今尚未作靜態資源轉發
說說昨天遇到最大的深坑IIS Express崩潰,一個晚上都在弄,太可怕了
說說IIS Express崩潰的一些怪象
怪象1.沒法正常的生成解決方案,會報錯程序被佔用,我必須手動關掉IIS Express進程
怪象2.mvc路由絮亂
咱們直接說怪象2,怎麼一個絮亂呢,舉個栗子,mvc路由設置/home/index 爲初始頁面,此時我輸入/home/login顯示的內容仍是index的內容,並且調試不會命中斷點
除了啓動的時候,會命中/home/index的控制器斷點,後續全部刷新都不會命中斷點,嘗試用不一樣瀏覽器排除了緩存,加上GUID,發現每次GUID的值都會變化,前端抓包,排除301轉發
重啓電腦,也沒法解決
沒辦法了,我只能讓羣友那邊跑個人代碼,有兩位羣友跑過,顯示正常,我意識到多是個人iis容器出現了問題,我嘗試直接使用控制檯做爲容器,一切正常
作完這個,發現一個因細節疏忽,致使js出錯,這個錯誤又調試了很久
模板頁的引用,母版頁引用會致使js衝突,項目中可能同時存在兩個相同的jq引用,致使部分方法失效,因此必定要檢查是否使用母版頁
如不使用母版頁,頁面加上
@{ Layout = null; }
以爲對你有幫助的,能夠去給我開源項目點個星星
開源地址:https://github.com/wmowm/nh.core