我有两个 VS 项目,一个用于主网站,一个用于“静态内容”网站,其中所有 css、js、图像和其他静态内容都将通过无 cookie 域存储和访问。
所以我的静态站点中有一个 BundleConfig.cs 来创建所有捆绑包:
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/bundles/styles").IncludeDirectory("~/app/styles", "*.css", true));
bundles.Add(new ScriptBundle("~/bundles/scripts").IncludeDirectory("~/app/src", "*.js", true));
}
}
在主站点中,我有另一个 BundleConfig.cs,我将主站点指向静态内容站点,如下所示:
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
var staticWebsite = ConfigurationManager.AppSettings["StaticWebsite"];
var versionNumber = ConfigurationManager.AppSettings["VersionNumber"];
Styles.DefaultTagFormat = string.Format("<link href='{0}{{0}}?v={1}' rel='stylesheet'/>", staticWebsite, versionNumber);
Scripts.DefaultTagFormat = string.Format("<script src='{0}{{0}}?v={1}'></script>", staticWebsite, versionNumber);
}
}
现在我可以按照我想要的方式使用@Styles.Render("~/bundles/styles")
和@Scripts.Render("~/bundles/scripts")
渲染这样的东西,而且效果很好:
<link href='http://mycookielessdomain.com/bundles/styles?v=1.0.0.0' rel='stylesheet'/>
<script src='http://mycookielessdomain.com/bundles/scripts?v=1.0.0.0'></script>
我遇到的问题是,无论是否,内容总是debug=true
被缩小和捆绑。即使我BundleTable.EnableOptimization = false
在两个 BundleConfig.cs 文件中都使用,@Styles.Render()
并且@Scripts.Render()
仍然只呈现一个标签并引用被缩小的内容。
我知道主站点不知道捆绑在静态内容站点中的各个文件,但我希望有一些方法可以在主站点的 BundleConfig 中手动指定这些路径,以便 Render() 方法可以当优化关闭时单独列出它们......如果我能让它们关闭,那就是。