是否可以在捆绑中包含虚拟资源?

时间:2014-01-24 02:35:04

标签: asp.net-mvc-4 bundle

使用MVC4,我为css文件创建了一个控制器,这样我就可以将模型传递给它们并在css中使用razor语法。

为了不破坏现有的css文件,这些特殊的css文件在请求它们的路径中不存在。

我试图将这些文件包含在一个包中,它们不会出现在页面输出中。

bundles.Add(New StyleBundle("~/Content/site/css").Include("~/Styles/site.css"))
  

请注意,磁盘上不存在〜/ Styles / site.css。但是,StylesController会正确处理此问题,并在您要求时返回预期的内容。

我的猜测是捆绑包看到磁盘上没有文件,并从输出中排除了该路径。但我不知道如何让它不关心。

关于如何让这些文件与bundle一起玩的任何想法?

2 个答案:

答案 0 :(得分:1)

试试这个

bundles.Add(New StyleBundle("~/Content/site/css")
.Include("~/Styles/site.css",new CssRewriteUrlTransform()))

答案 1 :(得分:1)

我知道这个问题已经过时了,但是我试图在每个页面中包含客户端验证包而没有手动包含每个文件。由于CssRewriteUrlTransform似乎没有为我做任何事情,我使用了下一堂课

public class CustomScriptBundle : ScriptBundle
{
    public CustomScriptBundle(string virtualPath, IBundleOrderer orderer)
        : base(virtualPath)
    {
        Orderer = orderer;
    }
    public CustomScriptBundle(string virtualPath)
        : this(virtualPath, new NonOrderingBundleOrderer())
    {

    }
    public CustomScriptBundle IncludeVirtual(string virtualPath)
    {
        this.Include(new BundleResolver().GetBundleContents(virtualPath).ToArray());
        return this;
    }
}

P.S。 :NonOrderingBundleOrderer是一个不按字母顺序排列包中文件的类