将文件捆绑到不同的目录中?
我最近在一个网站上遇到了一个问题,网页上的样式真的搞砸了,但只在IE中。 我的老板告诉我这很可能是因为被渲染的CSS Bundle包含来自不同目录的CSS文件,所以我查了一下并确实做到了。 它类似于以下内容:
bundles.Add(new StyleBundle("~/path/subpath/all").Include(
"~/path/subpath/filename.css",
"~/path/subpath/filename1.css",
"~/path/subpath/filename2.css",
"~/path/subpath/filename3.css",
"~/path/subpath/anotherSubPath/filename.css",
"~/path/subpath/anotherSubPath/filename1.css",
"~/path/aDifferentSubPath/filename.css"));
他说Bundling不能像这样工作,你只能在一个Bundle中拥有相同目录的文件,所以我把它们分成如下所示:
bundles.Add(new StyleBundle("~/path/subpath/all").Include(
"~/path/subpath/filename.css",
"~/path/subpath/filename1.css",
"~/path/subpath/filename2.css",
"~/path/subpath/filename3.css"));
bundles.Add(new StyleBundle("~/path/subpath/anotherSubPath/all").Include(
"~/path/subpath/anotherSubPath/filename.css",
"~/path/subpath/anotherSubPath/filename1.css"));
bundles.Add(new StyleBundle("~/path/aDifferentSubPath/all").Include(
"~/path/aDifferentSubPath/filename.css"));
这工作和解决我们的问题在IE浏览器。 好,现在到我的问题:
对于旧版本的IE,至少<10有一些已知的限制
IE可以加载的CSS和脚本文件的数量 - 如果您在Debug
模式下运行站点时,这可能是一个问题,捆绑包没有捆绑在一起。
如果情况并非如此,那么你的文件中是否有超过4,096个选择器?
Internet Explorer CSS限制
捆绑名称和文件夹存在常见问题,当您的css文件使用静态文件(如图像,字体等)的相对路径时
例如你有:
bundles.Add(new StyleBundle("~/path/subpath/all").Include(
...
"~/path/subpath/anotherSubPath/filename1.css"));
并在你的filename1.css
使用background: url(image.jpg)
,通常这个图像与filename1.css
位于同一个文件夹,即~/path/subpath/anotherSubPath/image.jpg
。 使用下面的bundels会使浏览器查找不存在的文件~/path/subpath/all/image.jpg
。 也许这就是分离包的原因。
你的老板听起来很棒! 首先,CSS路径与CSS文件相关,所以我怀疑这就是为什么他建议你改变它。
但CSS长度也可能是一个问题,所以可能是这种情况下的根本原因。
不幸的是,在浏览器中有一些小问题需要注意,比如这个CSS,或者Apple设备上的图像大小(之前与精灵表单碰撞)。 你的老板听起来像是一种动态的东西,打开了那个会知道的人。
链接地址: http://www.djcxy.com/p/84993.html