摘要:引言學生管理系統昨日正式上線測試,上線遇到的問題不少,但最后都完美解決了。前臺上線,瀏覽器端訪問服務器卻得到了,查看相關日志后發現是訪問文件時遭到了拒絕。不足當時忙著上線,中默認也啟用了路由,就以為路由是正統的解決方案。
引言
Alice學生管理系統昨日正式上線測試,上線遇到的問題不少,但最后都完美解決了。
特此分享,一起爬坑。
項目優化 登錄頁美化原來的登錄頁采用的是黑背景,經過大家的充分討論,我們需要換一個登錄頁,黑背景看著壓抑。
然后就在晨澍和潘佳琦的幫助下開始找各種登錄的模板,發現都特別丑,后來發現當前系統的登錄風格和微信的登錄風格很像,順手就抄過來了,感覺效果還不錯。
上線問題 打包問題
前臺ng build --prod之后,發現樣式不一致。
期待:
實際結果:
查看元素發現是Bootstrap的樣式在打包之后沒有了。
后來發現:黃庭祥在style.less中引用了一個在線的Bootstrap,打包肯定打不進去啊。
引用的所有包,都不能引在線的,需要使用npm安裝。npm install之后的包才能被打包進去。
遠程文件拷貝本地打完包,需要將文件上傳到服務器,查了一下,需要使用scp命令。
scp:secure copy,安全拷貝,將文件加密傳輸,安全的遠程文件拷貝命令。
scp -r /Users/panjie/github/yunzhiclub/alice/web/webApp/dist/webApp root@xxx.xxx.xxx.xxx:/root/
將本地打包的webApp目錄上傳到服務器的/root目錄下。
-r代表目錄,xxx.xxx.xxx.xxx請替換成相應的服務器IP地址。
nginx 403前臺上線,瀏覽器端訪問服務器卻得到了403,查看相關日志后發現是nginx訪問文件時遭到了拒絕。
在nginx的配置文件中,有一行配置用戶的。
原配置是user nginx;,所以啟動時nginx進程的用戶是nginx,但是webApp文件的用戶所有者是root,所以就403了。
解決方案是把用戶配置改成root(有權限的用戶),然后重新加載配置文件即可。
刷新404問題
當用戶訪問127.0.0.1:8100時,根據路由的重定向,""重定向為"setup"登錄界面。
但是用戶刷新或直接訪問127.0.0.1:8100/setup時,報404錯誤。
猜想,nginx轉發出現了問題,應該是/轉給了Angular,但是把/setup當成了文件夾。
這個只是我的猜測,如果您有什么意見,歡迎在評論區中指出我的錯誤,感激不盡。
華軟就沒有該類問題,對比兩個項目,發現華軟中默認配置了hash路由。
hash路由特意去官網學習了一下hash路由,感覺應該能給大家講明白。
兩個路由:
127.0.0.1:8100/setup 127.0.0.1:8100/#/setup
普通的路由是不帶#的,hash路由是帶#的。
#號,我們是不是在哪里見過?大家還記得Spring的官方文檔嗎?
用a標簽實現頁面內跳轉。hash路由與之類似。
#之后的路由變化不會被發送給服務器,也就是說:127.0.0.1:8100/setup,后臺nginx獲取到的路徑是/setup,而使用hash路由,對于路由127.0.0.1:8100/#/setup,后臺獲取到的路徑就是/。
注入hash路由策略,即可啟用hash路由。
再訪問,后臺獲取到的就是/,然后把angular應用返回回來,然后angular應用再去處理#之后的路由,不會出現404。
以上的論述,是我結合官方文檔和我的經驗得出的解決,如果有不正確之處,歡迎您批評指正。
不足當時忙著上線,ng alain中默認也啟用了hash路由,就以為hash路由是正統的解決方案。
但是今天看官方文檔,卻看到了這樣的描述:
幾乎所有的Angular項目都會使用默認的HTML 5風格。它生成的URL更易于被用戶理解,它也為將來做服務端渲染預留了空間。
在服務器端渲染指定的頁面,是一項可以在該應用首次加載時大幅提升響應速度的技術。那些原本需要十秒甚至更長時間加載的應用,可以預先在服務端渲染好,并在少于一秒的時間內完整呈現在用戶的設備上。
默認的路由(不帶#)的,支持服務器端渲染,而hash路由則不支持。除非你有強烈的理由不得不使用hash路由,否則就應該堅決使用默認的HTML 5路由風格。
hash路由不推薦,不支持SSR。另外,我覺得應該是當前nginx的轉發配置寫得不好,以后再研究研究。
總結對技術懷著一顆敬畏之心,努力地尋找著最佳實踐。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/8105.html
摘要:微信各個服務是獨立的,比較蛋疼,要用紅包功能,首先你需要注冊一個微信商戶平臺賬號。首先是微信證書,用的是,與這兩個。寫在最后微信開發者工具挺好用的,服務號里把自己加為開發者就能用了。 描述 有時候產品有這么一些需求,當用戶滿足一定條件時,給他發一定金額的紅包。 微信各個服務是獨立的,比較蛋疼,要用紅包功能,首先你需要注冊一個微信商戶平臺賬號。 代碼位置 分支pay-20160802 微...
摘要:借著這個需求體會了下微信開發的兩種不同類型非端口的兩種開發,以及的一些正確姿勢。關于用戶微信登錄的事情我們通過已經解決了參考我的上一篇博客微信公眾號開發小記接入三方登錄,所以可以直接用的裝飾器完成這種事情。 描述 假設的我們的服務號有這么一些功能,比如底部有按鈕,點擊會有一些復雜的功能,這時候可能就需要一個用戶系統,有用戶系統就經常想要做什么分享邀請新用戶之類的,這時候就又有幾種方式,...
摘要:普通的回調函數調用執行后續邏輯使用了以后的復雜邏輯獲取到正確的結果輸出兩個文件拼接后的內容雖說解決了的問題,不會出現一個函數前邊有二三十個空格的縮進。所以直接使用關鍵字替換原有的普通回調函數即可。 從今年過完年回來,三月份開始,就一直在做重構相關的事情。 就在今天剛剛上線了最新一次的重構代碼,希望高峰期安好,接近半年的Node.js代碼重構。 包含從callback+async.w...
摘要:內容列表元組操作字符串操作字典操作集合操作文件操作字符編碼與轉碼內置函數在中,最基本的數據結構是序列。序列中的每個元素被分配一個序號即元素的位置,也稱為索引??兆值洳话ㄈ魏雾椨蓛蓚€大括號組成。 day2內容1、列表、元組操作2、字符串操作3、字典操作4、集合操作5、文件操作6、字符編碼與轉碼7、內置函數 在Python中,最基本的數據結構是序列(sequence)。序列中的每個元素被...
閱讀 870·2021-11-18 10:02
閱讀 1671·2019-08-30 15:56
閱讀 2570·2019-08-30 13:47
閱讀 2639·2019-08-29 12:43
閱讀 851·2019-08-29 11:19
閱讀 1783·2019-08-28 18:23
閱讀 2669·2019-08-26 12:23
閱讀 3007·2019-08-23 15:29