javascript - .NET JavaScript 无法检索文件

标签 javascript c# .net

在我的 .NET Core 2 应用程序中,“wwwroot”部分中有一个名为“data”的目录,其中包含一些文件。在 JavaScript 中,我调用这些文件以将它们加载到另一个 JS 函数中。

var filename = ["data/file1.kml", "data/file2.kml", "data/file3.kml"];

我想也许我需要在数据这个词前添加一个 ~/但这似乎并没有改变任何东西。在 Chrome 控制台中,JavaScript 给出了 404 not found。

在非 .net 站点(php 站点)中,我可以只提供/data/filename.ext 并可以轻松加载文件。

如何从 .net 中的目录检索文件?

编辑:

所以我在该目录中添加了一个 .txt 文件,我可以通过以下方式查看它

https://localhost:44300/data/info.txt

我应该可以去下面查看其中一个文件

https://localhost:44300/data/file1.kml

数据目录中的所有文件都不是 .net 站点的一部分。它们位于服务器上的一个文件夹中。我也将它们复制到本地以进行调试。该文件夹中的文件会一直更改,名称也会更改。发生这种情况时,我已经有一些东西可以获取目录的内容,我只是无法加载 .kml 文件,但会加载 .txt 文件。

编辑:

我复制了其中一个文件并将 kml 替换为 xml 作为扩展名,这确实有效。

https://localhost:44300/data/test.xml

与 .KML 扩展名有关。我确实将 MIME 类型添加到服务器(这没有改变任何东西),但这个问题也在 localhost 上,我认为它没有你可以编辑的 MIME 类型。 startup.cs 文件中是否可能需要添加某些内容以支持不常见的扩展类型?

如何在 .NET 应用程序本身中添加对文件扩展名类型的支持?

我启用了目录列表,.xml 和 .txt 文件显示/加载正常,但 .kml 和 .gpx 文件显示 404。

enter image description here enter image description here

最佳答案

IIS(通常)不会提供其 mime 映射中没有类型的静态文件。默认情况下,.kml.gpx 都不在其 mime 映射中。

在 IIS 上,您可以通过以下方式添加 mime 类型:IIS > Mime 类型

在 ASP.NET Core 中,您可以这样做:

public void Configure(IApplicationBuilder app)
{
    // Set up custom content types - associating file extension to MIME type
    var provider = new FileExtensionContentTypeProvider();
    // Add new mappings
    provider.Mappings[".kml"] = "application/vnd.google-earth.kml+xml";
    provider.Mappings[".gpx"] = "application/gpx+xml";

    app.UseStaticFiles(new StaticFileOptions { ContentTypeProvider = provider });
}

引用:

https://learn.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-2.1&tabs=aspnetcore2x

关于javascript - .NET JavaScript 无法检索文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51690193/

相关文章:

javascript - 如何使用变量在 javascript 中呈现 unicode?

c# - 数据库设计 : Custom fee/billing charge rates

c# - 如果已启动的进程处于打开状态,应用程序退出后套接字不会关闭

.net - 复制本地如何工作? log4net.dll 没有被复制到 MyProject 输出目录

asp.net - VB.NET Web 窗体项目引用问题

javascript - 将 Bootstrap 工具提示设置为 AJAX 调用结果

javascript - 在 JavaFX 中的 String 中包含本地 javascript 源

java - 如何使用 Vert.x 从 JDBC + Java 获取数据到 Javascript?

c# - 如何将 ListItemCollection (dropdownlist.items) 转换为字典<string,string>?

c# - 带有 Npgsql "relation <tablename> does not exist."的 Postgresql 仅出现在 Win 7 上