asp.net-mvc – 根据请求域捆绑CSS文件?
发布时间:2020-12-16 06:33:00 所属栏目:asp.Net 来源:网络整理
导读:我有一个多租户应用程序,我试图确定最简单的方法来控制哪些CSS文件捆绑基于任何传入请求的URL. 我认为我可以在RegisterBundles()中有一些条件逻辑,它将Url作为字符串,并相应地捆绑: public static void RegisterBundles(BundleCollection bundles,string te
我有一个多租户应用程序,我试图确定最简单的方法来控制哪些CSS文件捆绑基于任何传入请求的URL.
我认为我可以在RegisterBundles()中有一些条件逻辑,它将Url作为字符串,并相应地捆绑: public static void RegisterBundles(BundleCollection bundles,string tenant = null) { if (tenant == "contoso"){ bundles.Add(new StyleBundle("~/contoso.css") } } 但我不知道如何将字符串传递给RegisterBundles,即使它是可能的,也不是正确的解决方案.这里的任何帮助都会很棒. 解决方法
现在无法在RegisterBundles中执行此操作.动态生成每个请求的bundle内容将阻止ASP.net缓存缩小的CSS(它在HttpContext.Cache中缓存).
您可以做的是在RegisterBundles中为每个租户创建一个捆绑包,然后在视图中选择适当的捆绑包. 视图中的示例代码: @Styles.Render("~/Content/" + ViewBag.TenantName) 编辑: 正如您所说,在ViewBag中设置TenantName是有问题的,因为您必须为每个视图执行此操作.解决此问题的一种方法是创建一个静态函数,如Styles.Render(),它根据当前租户选择正确的包名称. public static class TenantStyles { public static IHtmlString Render(params string[] paths) { var tenantName = "test"; //get tenant name from where its currently stored var tenantExtension = "-" + tenantName; return Styles.Render(paths.Select(i => i + tenantExtension).ToArray()); } } 用法 @TenantStyles.Render("~/Content/css") 捆绑名称需要采用此格式{bundle} – {tenant},如?/ Content / css-test.但是你可以改变课程的格式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在ASP.NET MVC视图页面中放置jQuery代码的位置?
- asp.net-mvc – 为什么在MVC中传递实体不是一个好主意?
- asp.net – 如何在两个网站中访问同一个Session?
- 有没有带语音记录示例代码的ASP.NET?
- asp.net-mvc-3 – 如何在Asp.Net MVC中显示DisplayFormat属
- asp.net-mvc – 如何找出在MVC3中调用我的视图的控制器动作
- 为什么这个ASP.Net Code-behind中的if语句不起作用?
- MediatR 知多少
- asp.net – 在Inproc模式下与页面只读的会话锁争用
- 在同一端口上运行多个ASP.NET Core RC2应用程序
推荐文章
站长推荐
- asp.net-core – .NET Core 2中缺少TaskCache类
- ASP.NET Core 认证与授权[6]:授权策略是怎么执行
- 使用ASP.NET窗体身份验证的WCF服务
- asp.net – GridView BoundField打破长字符串
- 深入理解ASP.NET MVC(目录)
- asp.net – ClientScriptManager.GetPostBackEve
- macos – ASP.NET CORE 2.1预览“Csc”任务不支持
- asp.net-mvc – NLog,Elmah共享库
- .net – Oxite:你打算用它做什么?
- asp.net-mvc – 在App_Code中的共享@helper中使用
热点阅读