天天看點

圖檔 儲存 絕對路徑和相對路徑的讨論

資料庫中圖檔儲存絕對路徑和相對路徑的讨論

一、問題

       1新的項目

       前端代碼:采用visual studio code開發,采用以vue.js為基礎的架構,最常用元件庫  element-ui。 編輯器采用 tinymce。

       後端代碼:采用microsoft visual studio開發, 采用webapi和 mvc兩種架構。 圖檔上傳采用mvc。

  2問題:前端 tinymce和 後端圖檔上傳部分出問題。本機測試時編輯器存庫内容中圖檔為絕對路徑。但是釋出到測試機 編輯器存庫内容中圖檔為相對位址。于是問題來了,同樣的代碼為什麼會出現這種情況。

  3前輩說:圖檔要儲存為絕對位址,不然以後圖檔獨立放到一台伺服器後會出現問題。前輩解釋了很久,我也沒聽懂。。

二、不懂的原因

  1 tinymce上次圖檔後顯示的位址,是後端程式傳回給它的。也就是所tinymce上次圖檔後顯示的位址是背景程式傳回的,而不是客戶計算機圖檔所在位置的位址。 但是背景代碼每次傳回的都是絕對路徑,為什麼到前端就變成相對的了?

       2、tinymce 本機測試和測試機表現有差異,解決方法:初始化時配置 relative_urls: false。

       3 因為mvc時期 前端代碼和後端代碼是在一起的,但現在前後端代碼幾乎完全分離。 雖然圖檔上傳目前還是mvc方式實作的但以後可能也會改為webapi實作。 以後圖檔也可能獨立放到一台伺服器,那麼前後代碼、後端代碼、圖檔資料 将會是完全分離的。到時候就會發現相對路徑無法通路圖檔了。  絕對路徑可以避免以後出現這些問題。

  4 如果儲存圖檔伺服器的ip或端口變了怎麼辦? 難道去資料庫修改所有ip或端口。答:更新相對固定的ip或端口是比較簡單的。

  5 任何人都可以通路這些圖檔,甚至不用登入!! 這個本項目不考慮,以後如果需要可以建個ftp資料總管專門用來存儲圖檔資源,ftp可以設定哪些使用者組可以通路資源 ,這樣隻有知道這個使用者和密碼的人才能圖檔資源伺服器。

樹立目标,保持活力,gogogo!

繼續閱讀