我设法找到了解决这个问题的方法,所以希望通过把它放在这里让所有人看到这将帮助其他人解决我遇到的类似问题。
采用与我在原始问题中发布的解决方法相同的想法,我创建了 2 个新的辅助函数来帮助在我的视图中生成必要的脚本和样式引用......
脚本
<ExtensionAttribute()> _
Public Function RenderScripts(helper As HtmlHelper, async As Boolean, ParamArray Paths() As String) As IHtmlString
If Misc.IsLocalDev Then
Return Optimization.Scripts.Render(Paths)
Else
Dim url As UrlHelper = New UrlHelper(HttpContext.Current.Request.RequestContext, RouteTable.Routes)
Dim html As String = ""
For Each Path In Paths
If async = True Then
html = html & "<script async src=""" & url.StaticContent(Path) & GetAppVersionSuffix() & """ type=""text/javascript""></script>"
Else
html = html & "<script src=""" & url.StaticContent(Path) & GetAppVersionSuffix() & """ type=""text/javascript""></script>"
End If
Next
Return New HtmlString(html)
End If
End Function
所以不要使用:
@Scripts.Render("~/bundles/jquery")
我将电话替换为:
@Html.RenderScripts(False, "~/bundles/jquery")
关于上述方法的一些注意事项......
- 我在函数调用中添加了一个异步参数,以允许我使用现代浏览器 aynsc 脚本。
- GetAppVersionSuffix ()函数调用返回附加到脚本源末尾的程序集版本,例如?v=1.2.3.4。这可确保浏览器在发布新版本时获得脚本和样式表的新副本。
- Misc.IsLocalDev函数是我在本地计算机上开发时用于更改 Web 应用程序某些部分的行为方式的特殊函数。在这种情况下,它确保呈现未捆绑的脚本和样式而不是缩小/捆绑的,以简化调试。
风格
<ExtensionAttribute()> _
Public Function RenderStyles(helper As HtmlHelper, ParamArray Paths() As String) As IHtmlString
If Misc.IsLocalDev Then
Return Optimization.Styles.Render(Paths)
Else
Dim url As UrlHelper = New UrlHelper(HttpContext.Current.Request.RequestContext, RouteTable.Routes)
Dim html As String = ""
For Each Path In Paths
html = html & "<link href=""" & url.StaticContent(Path) & GetAppVersionSuffix() & """ rel=""Stylesheet"" />"
Next
Return New HtmlString(html)
End If
End Function
所以再次,而不是使用:
@Styles.Render("~/Content/Style")
我将电话替换为:
@Html.RenderStyles("~/Content/Style")
我希望这对某人有用!