使用asp.net MVC4中的Bundle遇到的问题及解决办法分享
背景
之前有过使用mvc3的经验,也建过mvc4的基本样例看过,知道有bundle这么一个方法。
近日想建个网站使用mvc4,但是我觉得在基本样例上改不好,有太多无用的东西,所以就建了一个空白的mvc的程序,然后自己写需要的东西,
将程序的目标框架从4.5降到了4.0(我使用的是vs2013),问题就来了。
问题及解决办法
1、降了目标框架之后,vs报一个警告:nuget程序包是使用不同于当前目标框架的目标框架安装的,需要更新system.web.http,之前有用过nuget,
但是只是用它来添加需要的程序集, 没有更新过啊。
解决:搜索之,不难找到答案,在nuget的命令窗口,使用update-package 程序包名 来更新,对于只使用管理nuget程序包窗口的人来说,命令窗口在哪呢?
打开窗口,使用命令 update-package system.web.http 更新即可。
2、第一次见到使用bundle时候,觉得有这个之后多处引用js或者css的时候写的就方便了,现在知道了它更大的用处是对js或者css文件进行合并压缩。
具体怎么用呢,不知道了,好解决,再单独新建一个mvc4的基本样例程序查看一下。
问题: 首先需要在app_star文件夹下新建一个bundleconfig.cs类,定义registerbundles方法,需要bundlecollection对象作为参数,发现没有bundlecollection类
解决:程序添加对system.web.optimization.dll的引用,类中添加using system.web.optimization
问题:bundleconfig.cs类写好了,在global.asax文件的application_start方法中注册了,那在页面view中用吧,但是写@styles.render时怎么也不出提示,
怎么没有呢? 在样例页面上也没看到有引用命名空间呢?
解决:原来这个命名空间是需要在web.config中添加的,在程序目录下有个web.config ,在view文件夹下也有个web.config,在两个文件中都加上
<add namespace="system.web.optimization"/> ,具体位置你一看web.config就知道了。
问题:ok,都写好了运行一下吧,我去,出异常了。第一眼就看见提示“使用相对路径时,请确保当前目录是正确的”,难道说是bundleconfig.cs定义的文件路径有问题?
问题是没有加载webgrease
解决:程序添加引用:antlr3.runtime.dll 和webgrease.dll,在程序根目录下的web.config中添加以下节点
问题:程序运行起来,没有报错,以为一切ok了,却发现jquery.min.js文件没有引用上?
解决:上边说到了bundle有对文件压缩的功能,文件名中有min它就不引用了,所以把文件名中的min去掉,改成jquery.js就可以了。
搜索过程中有篇文章说
new scriptbundle("~/bundles/js/jquerycontent") 中的的名字 不能有特殊符号。。比如 . - 否则无效呀。地址
总结:在使用bunle过程中需要引用三个dll,在web.config中做两处的配置,我想我如果不从0开始写,我不会知道这些。
上一篇: Springmvc的运行流程图文详解
推荐阅读
-
我在开发AJAX过程中遇到的问题及解决方案,分享给大家~ Ajax浏览器IEjQueryDojo
-
我在开发AJAX过程中遇到的问题及解决方案,分享给大家~ Ajax浏览器IEjQueryDojo
-
web报表工具FineReport使用中遇到的常见报错及解决办法(三) finereport报表软件FAQ
-
vue插件vue-lazyload懒加载插件的使用及在过程中遇到的图片不更新问题
-
Android 使用volley过程中遇到的问题解决办法
-
总结Nginx 的使用过程中遇到的问题及解决方案
-
Android 使用volley过程中遇到的问题解决办法
-
html5的input的required使用中遇到的问题及解决方法
-
ubuntu14.04 使用中遇到的问题及解决方法集锦
-
在Ajax中使用get和post所遇到的问题及解决办法