問題描述
在釋出網站時,發現上線的網站總是功能缺失,而本地代碼确實沒問題。
到釋出網站的磁盤去檢視,發現丢失了很多靜态頁面檔案。
這是一個很奇怪的問題:mvc的網站,丢失了很多View(大部分的cshtml檔案都釋出成功了,隻有少數部分釋出失敗)。
手動将所有view全部覆寫一遍,發現網站可以正常運作了……
這是什麼原因呢?為什麼釋出會遺漏部分靜态檔案呢?
解決方案
在vs中檢視這些遺漏的和釋出成功的檔案屬性,對比一下發現
釋出成功的檔案,屬性中【生成操作】選中了【内容】選項,而失敗的檔案則是【無】。
修改了這些屬性我在此嘗試釋出,真的成功了。
追究原因
為什麼這些檔案會沒有這些屬性呢?
回想一下這些檔案被加入到工程的操作,我發現(在我這個項目中),因為是多個分布視圖,是以我隻建立了一個分布視圖,然後通過ctrl+c ctrl+v 複制了其他的視圖(過程中字尾出現問題,修改過字尾),而釋出結果剛好是通過vs建立的分布式圖釋出成功了,而複制的視圖釋出失敗。
通過複制的視圖,如果字尾被修改過(圖中修改了視圖字尾為.cshtml1),則會丢失這些屬性資訊。
在手動修改為正确的字尾之後 還要修改這些檔案的【生成操作】屬性。
後記
這本不該出現的問題,引出這麼大的麻煩,不過研究得到最後的真知,也算是一種收獲了。
小心駛得萬年船,怪就怪自己不細心吧。