ASP.NET MVC5 总结

时隔多年,又把ASP.NET MVC捡起来。以前用的MVC3,现在都到MVC5了,以前的东西有点跟不上了。赶紧把遇到的坑都记下来,也算是边开发,边总结。

1. IIS 7.5的部署

在win7或server 2008上部署MVC5项目需要安装.NET Framework 4.5.1,否则会在节点处报错,称targetFramework不匹配。

2. SQLite及Entity Framework 6配置

要使用VS的ADO.NET数据实体向导,需要安装SQLite for Visual Studio。下载时注意选择匹配的VS版本。在MVC项目中,用NuGet添加Entity Framework(版本选6.20或6.0)和System.Data.SQLite(SQLite在NuGet上只维护了一个最新版,本文选择1.0.106)。

3. 修改 web.config 文件

虽然通过NuGet安装SQLite可以自动添加引用并修改web.config,但自动修改的配置文件有误,需要修改entityFramework节点下的providers,正确的配置如下:


    
    

的前一个兄弟节点,如不使用VS自带的SQL Server Local DB也可去掉该默认数据库连接工厂类。

4. BundleConfig 的配置

BundleConfig中定义了css和js的虚拟路径,在最终生成的HTML中对资源的引用也是该虚拟路径。但如果在css中有对图片或字体的引用,且使用了相对路径如background-image: url(../img/test.jpg),多数情况下,都会找不到这个test.jpg。这是因为css中外联的图片、字体等文件并不存在于我们指定的虚拟路径下,而虚拟路径下又只有css和js文件。这就导致了图片和字体的丢失。解决办法有三:

  • 对有外联其他资源的css文件,单独配置一个bundle,指定虚拟路径时让其与实际物理路径相同。
  • 将有外联其他资源的css文件进行修改,把../img/test.jpg这样的相对路径都改为/Content/img/test.jpg这样的绝对路径。缺点是修改后的css文件与网站目录高度耦合,换一个目录结构就又要修改。
  • 修改Transformer

你可能感兴趣的:(ASP.NET MVC5 总结)