Asp.net 如何将gulp与新的mvc6标记助手一起用于不同的环境?
我完全不明白这个概念。我正在学习新的ASP5/MVC6模式,并希望做以下工作:Asp.net 如何将gulp与新的mvc6标记助手一起用于不同的环境?,asp.net,asp.net-mvc,azure,gulp,Asp.net,Asp.net Mvc,Azure,Gulp,我完全不明白这个概念。我正在学习新的ASP5/MVC6模式,并希望做以下工作: 在my\u Layout.cshtml中使用帮助程序,仅包括基于环境的完整源代码与缩小源代码 使用Gulp将源代码注入正确的帮助程序 在构建/更改源时在本地触发此注入,以及这在生产环境(Azure)中是如何工作的 我的wwwroot目录是否应该是仅可供浏览器使用的静态文件?IE:我把我的源代码site.js和site.css放在这里。。。但是我是否应该将这些源文件放在其他地方,然后使用Gulp构建它们,然后将它们放
- 在my
中使用\u Layout.cshtml
帮助程序,仅包括基于环境的完整源代码与缩小源代码 - 使用Gulp将源代码注入正确的
帮助程序 - 在构建/更改源时在本地触发此注入,以及这在生产环境(Azure)中是如何工作的
- 我的
目录是否应该是仅可供浏览器使用的静态文件?IE:我把我的源代码wwwroot
和site.js
放在这里。。。但是我是否应该将这些源文件放在其他地方,然后使用Gulp构建它们,然后将它们放在site.css
中wwwroot
/site
/wwwroot
/css
site.css
/js
site.js
/img
logo.png
/lib
/bootstrap
/jquery
/Controllers
/Views
project.json
bower.json
我的\u Layout.cshtml
具有:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>@ViewBag.Title</title>
<environment name="Development">
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="~/css/site.css" />
</environment>
<environment name="Staging,Production">
<!-- How to inject minified version here? -->
</environment>
</head>
<body>
<main>
@RenderBody()
</main>
<environment name="Development">
<script type="text/javascript" src="~/lib/jquery/dist/jquery.js"></script>
<script type="text/javascript" src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
<script type="text/javascript" src="~/js/site.js"></script>
</environment>
<environment name="Staging,Production">
<!-- How to inject minified version here? -->
</environment>
</body>
</html>
@视图包。标题
@RenderBody()
我找到了设置ASPNET_ENV的方法,尽管我不确定它是否仍然有效/最新
我真正的挫折来自:
- 设置Gulp只需构建我的源js/css,缩小它,然后输出它,这样我就可以从我的html中引用它
注意:指向第三方库很容易,因为我可以在
帮助中对其进行硬编码。这只是我自己的来源,我不确定最佳做法是什么。您可以使用Gulp缩小和压缩文件,并在wwwroot
中输出捆绑包
然后,在\u layout.cshtml
中,您可以使用asp append version
标记帮助程序将文件的哈希附加到URI以进行缓存破坏。在这里,我将第三方脚本与site.js
捆绑在一起,但如果需要,您可以单独缩小它们;概念是一样的
<environment names="Development">
<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
</environment>
<environment names="Staging,Production">
<script src="~/bundles/js/site-bundle.min.js" asp-append-version="true"></script>
</environment>
我这里有一个完整的工作示例:
链接已断开。请把它修好。
var paths = {
js: [
webroot + "lib/jquery/dist/jquery.min.js",
webroot + "lib/bootstrap/dist/js/bootstrap.js",
webroot + "js/**/*.js"
],
minJs: webroot + "js/**/*.min.js",
concatJsDest: webroot + "bundles/js/site-bundle.min.js",
// ...
};
gulp.task("min:js", function () {
return gulp.src(paths.js.concat(["!" + paths.minJs]), {
base: "."
})
.pipe(concat(paths.concatJsDest))
.pipe(uglify())
.pipe(gulp.dest("."));
});