将javascript文件存储在与ASP.NET Core 1.1中的视图相同的文件夹中?

时间:2017-02-04 21:18:48

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

在ASP.NET Web应用程序...... MVC(不是核心)中,我可以在web.config文件中添加这个......

t1 = datetime.datetime(2017, 2, 1)
t2 = datetime.datetime(2017, 2, 2)
t1 = str(t1.isoformat())
t2 = str(t2.isoformat())
c.execute("select * from ts2 where created_at >= %s and created_at < %s;" % (t1, t2)) 
isoformat

然后我可以将javascript文件放在与视图文件相同的文件夹中。

我可以在ASP.Net Core 1.1中以某种方式做同样的事情吗?

由于

1 个答案:

答案 0 :(得分:3)

以下是Microsoft官方文档:Working with Static Files in ASP.NET Core

作为OWIN管道的一部分,默认情况下不会呈现静态文件,包括“wwwroot”文件夹中的文件。以前在web.config中处理的东西,现在一切都通过OWIN管道。您必须添加允许渲染它们的StaticFile中间件。默认实现允许渲染“wwwroot”下的所有文件。

public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles();
}

上面的链接提供了文档,用于添加其他位置以允许从中呈现文件。它并不明确,但您可以查看Github上StaticFile Middleware的实现,以获得自定义实现的想法。

以下代码将添加StaticFiles中间件,仅允许从“Views”文件夹呈现javascript文件。您可以通过向“词典”添加项目来添加其他文件。

public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles();

    // Render only .js files in "Views" folder
    app.UseStaticFiles(new StaticFileOptions()
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), @"Views")),
            RequestPath = new PathString("/Views"),
            ContentTypeProvider = new FileExtensionContentTypeProvider(
                new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
                {
                    { ".js", "application/javascript" },
                })
        }
    );
}

您唯一的另一种选择是添加自定义grunt(或gulp)任务,将“Views”文件夹中的javascript文件复制到“wwwroot”文件夹中创建的新文件夹中。您可以在这里看到一些编译TypeScript代码并执行类似操作的示例。 Using Grunt Tasks