【问题标题】:How to reference own css file in ASP.NET 5?如何在 ASP.NET 5 中引用自己的 css 文件?
【发布时间】:2015-07-25 22:07:13
【问题描述】:

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

~/Content/css/styles.css

我尝试将其添加到 _Layout 页面

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

这会在该位置给出 404。

我喜欢 bower 处理外部库的方式,而 gulp 在我请求缩小版本时会神奇地执行所有其他操作,例如缩小文件,但是由于所有这些新事物,我无法添加自己的简单静态文件。

谁能帮我参考我自己的styles.css 文件?

【问题讨论】:

    标签: gulp bower asp.net-core asp.net-core-mvc


    【解决方案1】:

    乔在his answer写道:

    您可以移动/复制 www 根文件夹下的 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)。

    要在每次构建之前运行它,指定这个去“View > Other Windows > Task Runner Explorer”,右键点击出现的名为build:ccs的任务并选择“Bindings > Before Build”。

    你可以用 Gulp 做更多的事情,比如缩小、组合、分析、添加对文件的引用,但这些都是基础。

    注意:我从 Pluralsight 上的JavaScript Build Automation With Gulp.js 学到了以上内容。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢。您能否详细说明 gruntfile.js 如何“处理、合并、缩小,然后复制到 wwwroot 下的文件夹”文件?
      • 我建议作为起点,使用 vs 2015 项目模板创建一个新项目,并研究他们为您创建的 grunt 文件。基本上,对于客户端的东西,我们现在使用 bower 和 grunt 来实现诸如管理我们的 3rd 方 js 依赖项以及执行我们以前使用 bundle 所做的各种事情。如果你用谷歌搜索诸如 grunt bower visual studio asp.net 5 之类的东西,你会发现一些教程。如果我在我的网站上,我会发布一些对我有帮助的链接,但目前我在我的 iPad 上
      • 谢谢乔。 blogs.msdn.com/b/martinkearn/archive/2015/06/29/… 帮了大忙。我现在有了一个解决方案的想法:我需要找到或创建一个任务,以便在构建时将某些本地文件移动到 wwwroot 中。
      • 另一个观察结果是在最新的 vs 2015 asp.net 5 项目模板中,他们将 site.css 放在 wwwroot/css 中,gruntfile 将其处理到同一文件夹中的 site.min.css 中。我认为无论是在开发中我们想要缩小还是在生产中我们想要缩小和捆绑,在这两种情况下使用 css 或 js 文件,它们都需要低于 wwwroot。那么有什么理由在 web 应用程序下有一个 Content 文件夹吗?它还不如生活在 wwwroot 之下。如果我们想在发布时省略未缩小的内容,我们可以将其放在 wwwroot 下的特定文件夹中,并使用 project.json 中的 publishExclude。
      • 最后一个相关提示是查看最新的 asp.net 5 项目模板中的文件 Views/Shared/_ValidationScriptsPartial.cshtml。它展示了我们如何在 dev 和 production 中配置不同的脚本,以及如何使用 cdn 和 fallback
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      • 1970-01-01
      • 2016-02-18
      • 1970-01-01
      • 2019-02-23
      • 1970-01-01
      相关资源
      最近更新 更多