如何在MVC中的JavaScript博客中调用Scripts.Render?
问题描述:
我将SystemJS添加到我的项目中,但我仍然需要使用BundleConfig.cs中定义的一些捆绑包。我想使用SystemJS导入依赖项,但是我不能渲染我自己的代码,直到加载这些依赖项。如何在MVC中的JavaScript博客中调用Scripts.Render?
这是我的CSHTML文件
<html lang="en" ng-app="app">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>My-App</title>
@Scripts.Render("~/bundles/base") // SystemJS and polyfills
</head>
<body>
<script>
System.import("angular")
.then(function() {
// THIS IS WHERE I WOULD LIKE TO RENDER ANOTHER BUNDLE
})
</script>
<body>
</html>
只是推搡@Scripts.Render
到脚本块打破了HTML脚本解析 - 因为所有所做的是注入了一堆脚本标签。
请注意,我特别寻找MVC cshtml解决方案,这将允许我打电话给我的预定义包 - 我希望避免手动为我的项目中的每个文件编写脚本导入。
答
首先,为了在JavaScript中动态地加载脚本,您将不得不使用硬编码的路径引用。正如你想象的那样,你不能使用像Scripts.Render
这样的东西。
但是,如果您了解捆绑系统的工作原理,这不是一个问题。您创建的包,即~/bundles/base
,实际上是到该包的路由。换句话说,你可以从字面上做这样的事情:
<script src="/bundles/base"></script>
并且将包括捆绑的JavaScript。所以只需在脚本加载器中使用该路由。
+0
谢谢!这就是我最终做的事情 - 不要少使用System.import – tcmoore
相关,虽然这专门有做MVC脚本捆绑 – tcmoore
没有,它注入一个单独的脚本标记每个文件在包 – tcmoore
至少调试 – tcmoore