Gulp 如何在ASP.NET 5中引用自己的css文件?

Gulp 如何在ASP.NET 5中引用自己的css文件?,gulp,bower,asp.net-core,asp.net-core-mvc,Gulp,Bower,Asp.net Core,Asp.net Core Mvc,我正在尝试加载一个名为styles.css的文件,该文件位于 ~/Content/css/styles.css 我尝试的是将其添加到_布局页面 <link rel="stylesheet" href="~/Content/css/styles.css" /> 这将在该位置上显示404 我喜欢bower处理外部库的方式,gulp神奇地做了所有其他事情,比如在我请求缩小版本时缩小文件,但是通过所有这些新功能,我无法添加我自己的简单静态文件 有人能帮我引用我自己的style.css文

我正在尝试加载一个名为
styles.css
的文件,该文件位于

~/Content/css/styles.css

我尝试的是将其添加到_布局页面

<link rel="stylesheet" href="~/Content/css/styles.css" />

这将在该位置上显示404

我喜欢bower处理外部库的方式,gulp神奇地做了所有其他事情,比如在我请求缩小版本时缩小文件,但是通过所有这些新功能,我无法添加我自己的简单静态文件


有人能帮我引用我自己的
style.css
文件吗?

你可以移动/复制www root folder下的Content文件夹,或者使用grunt file.js处理、合并、缩小,然后复制到wwwroot下的文件夹。但是~/现在的意思是wwwroot

乔写道:


您可以移动/复制www root folder下的Content文件夹,也可以使用grunt file.js处理、合并、缩小内容,然后复制到wwwroot下的文件夹。但是~/现在意味着wwwroot

要详细说明这一点:

Gulp中有四种API,分别是:

gulp.task: Define a task
gulp.src: Read files
gulp.dest: Write the files
gulp.watch: Watch the files
要将示例CSS文件中的文件从源写入目标(我想做的),可以定义如下任务:

var gulp = require('gulp')

var paths = {
    webroot: './wwwroot/',
    cssContent: './Content/css/**/*.css'
};

paths.jsDest = paths.webroot + 'js/';
paths.cssDest = paths.webroot + 'css/';

gulp.task('build:ccs', function () {     // Define a task called build.css
    console.log('Building Cascading Style Sheets...')
    gulp.src(paths.cssContent)           // Look for files in the source.
                                         // Do optional other stuff
        .pipe(gulp.dest(paths.cssDest)); // Put it in the wwwroot.
});
所有这些都将把文件从
gulp.src
cssContent(我的本地目录)移动到
gulp.dest
cssDest(webroot)

要在每次生成之前运行此命令,请转到“查看>其他窗口>任务运行器资源管理器”,右键单击出现的名为
build:ccs
的任务,然后选择“绑定>生成之前”

使用Gulp可以做很多事情,比如缩小、合并、分析、向文件添加引用,但这些都是基础


注:我是从Pluralsight上学习上述内容的。

谢谢。您能否详细说明gruntfile.js如何“处理、合并、缩小并复制到wwwroot下的文件夹”文件?我建议您从使用vs 2015项目模板创建一个新项目开始,并研究他们为您创建的grunt文件。基本上,对于客户端的东西,我们现在使用bower和grunt来实现诸如管理我们的第三方js依赖项之类的事情,并执行我们以前使用捆绑包所做的事情。如果你在谷歌上搜索grunt bower visual studio asp.net 5等内容,你会发现一些教程。如果我在我的网站上,我会发布一些帮助我的链接,但目前我在我的iPadHanks Joe上。帮助很大。我现在有了一个解决方案的想法:我需要找到或创建一个任务,以便在构建时将某些本地文件移动到wwwroot中。另一个观察结果是在最新的vs 2015 asp.net 5项目模板中,他们将site.css放在wwwroot/css中,Grunfile将其处理到同一文件夹中的site.min.css中。我认为,无论是在开发中,我们希望未统一,还是在生产中,我们希望缩小和捆绑,在这两种情况下,要使用css或js文件,它们都需要低于wwwroot。那么,是否有任何理由在web应用程序下设置内容文件夹?它还不如住在wwwroot下面。如果我们想在发布时省去未统一的内容,我们可以将其放在wwwroot下的特定文件夹中,并使用publishExclude from project.json。最后一个相关提示是查看最新asp.net 5项目模板中的文件Views/Shared/_validationscripttial.cshtml。它展示了我们如何在开发与生产中配置不同的脚本,以及如何将cdn与回退一起使用