首页 > 代码库 > vs2012 发布网站丢失文件

vs2012 发布网站丢失文件

问题描述

在发布网站时,发现上线的网站总是功能缺失,而本地代码确实没问题。

到发布网站的磁盘去查看,发现丢失了很多静态页面文件。

这是一个很奇怪的问题:mvc的网站,丢失了很多View(大部分的cshtml文件都发布成功了,只有少数部分发布失败)。

手动将所有view全部覆盖一遍,发现网站可以正常运行了……

这是什么原因呢?为什么发布会遗漏部分静态文件呢?


解决方案

在vs中查看这些遗漏的和发布成功的文件属性,对比一下发现

wKiom1Os19-BH4rIAADgCXpCQpI962.jpg

发布成功的文件,属性中【生成操作】选中了【内容】选项,而失败的文件则是【无】。

修改了这些属性我在此尝试发布,真的成功了。


追究原因

为什么这些文件会没有这些属性呢?

回想一下这些文件被加入到工程的操作,我发现(在我这个项目中),因为是多个分布视图,所以我只新建了一个分布视图,然后通过ctrl+c  ctrl+v 复制了其他的视图(过程中后缀出现问题,修改过后缀),而发布结果刚好是通过vs新建的分布式图发布成功了,而复制的视图发布失败。

通过复制的视图,如果后缀被修改过(图中修改了视图后缀为.cshtml1),则会丢失这些属性信息。

wKiom1Os1wjxz-IaAACBs872Kf0266.jpg

在手动修改为正确的后缀之后 还要修改这些文件的【生成操作】属性。


后记

这本不该出现的问题,引出这么大的麻烦,不过研究得到最后的真知,也算是一种收获了。

小心驶得万年船,怪就怪自己不细心吧。