【发布时间】:2025-11-28 03:10:01
【问题描述】:
我有两个 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 与否,内容都总是 被缩小和捆绑。即使我在两个 BundleConfig.cs 文件中都使用 BundleTable.EnableOptimization = false,@Styles.Render() 和 @Scripts.Render() 仍然只呈现一个标签并引用缩小的内容。
我知道主站点不知道捆绑在静态内容站点中的各个文件,但我希望有一些方法可以在主站点的 BundleConfig 中手动指定这些路径,以便 Render( ) 方法可以在优化关闭时单独列出它们......如果我能让它们关闭,那就是。
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-mvc-4 bundling-and-minification system.web.optimization