我的asp.net项目中的Content文件夹中有一个json文件:
<projectName>
\Content
NBCCJr.json
Run Code Online (Sandbox Code Playgroud)
...以及访问它的代码:
$.getJSON('~/Content/NBCCJr.json', function (data) {
$.each(data, function(i, dataPoint) {
// Bla
});
});
)
Run Code Online (Sandbox Code Playgroud)
......但是在调用代码时没有任何反应; 浏览器控制台说:"无法加载资源:服务器响应状态为404(未找到)"
为什么没找到?是不是"tilde whack filename"文件的正确路由?
我也向后试了"whacks":
$.getJSON('~\Content\NBCCJr.json', function (data) {
Run Code Online (Sandbox Code Playgroud)
...并得到相同的结果(" 无法加载资源:服务器响应状态为404(未找到) ")
然后我尝试了这样一个前所未有的打击:
$.getJSON('Content/NBCCJr.json', function (data) {
Run Code Online (Sandbox Code Playgroud)
...我在控制台中收到了这个含糊不清的消息:
*GET http://localhost:9702/Content/NBCCJr.json 404 (Not Found) jquery.js:8724
XHR finished loading: "http://localhost:9702/Content/NBCCJr.json".*
Run Code Online (Sandbox Code Playgroud)
所以它还没有找到并且还没有加载?
当我尝试通过更改以下内容导航到浏览器中的文件时:
http://localhost:9702/Default.cshtml
Run Code Online (Sandbox Code Playgroud)
...至:
http://localhost:9702/Content/NBCCJr.json
Run Code Online (Sandbox Code Playgroud)
我从Vint Cerf,Tim Berners-Lee和/或Al Gore那里获得了一条信息丰富的WSOD消息说:
HTTP错误404.3 - 未找到由于扩展配置,无法提供您请求的页面.如果页面是脚本,请添加处理程序.如果要下载文件,请添加MIME映射.
感谢JAM,它现在正在运作.
我不得不将其添加到Web.Config:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
Run Code Online (Sandbox Code Playgroud) 我有一个问题,即Visual Studio Express 2013 for Web中的IIS不允许加载*.json文件.当我尝试加载*.json文件时,我得到403 Forbidden和帮助页面如何配置IIS允许加载JSON文件,但不知道如何处理这些信息/ IIS所在的位置.
这是错误页面:
HTTP错误404.3 - 未找到由于扩展配置,无法提供您请求的页面.如果页面是脚本,请添加处理程序.如果要下载文件,请添加MIME映射.
最有可能的原因:可能缺少处理程序映射.默认情况下,静态文件处理程序处理所有内容.您尝试使用的功能可能未安装.未为网站或应用程序启用适当的MIME映射.(警告:不要为用户不应下载的内容创建MIME映射,例如.ASPX页面或.config文件.)如果未安装ASP.NET.
您可以尝试的事情:在system.webServer/handlers中:确保映射当前页面的预期处理程序.特别注意前提条件(例如,runtimeVersion,pipelineMode,bitness)并将它们与应用程序池的设置进行比较.在预期的处理程序行中要特别注意打字错误.请确认已安装您尝试使用的功能.验证是否已启用MIME映射,或使用命令行工具appcmd.exe添加网站的MIME映射.要设置MIME类型,请在IIS Express安装目录中运行以下命令:appcmd set config/section:staticContent/+ [fileExtension ='string',mimeType ='string']变量fileExtension string是文件扩展名和变量mimeType字符串是文件类型描述.例如,要为扩展名为".xyz"的文件添加MIME映射:appcmd set config/section:staticContent /+[fileExtension='.xyz',mimeType='text/plain']警告:确保这一点在将Web服务器添加到列表之前,需要进行MIME映射.配置文件(如.CONFIG)或动态脚本页(如.ASP或.ASPX)不应直接下载,而应始终通过处理程序进行处理.其他文件(如数据库文件或用于存储配置的文件,如.XML或.MDF)有时用于存储配置信息.确定客户端是否可以在启用它们之前下载这些文件类型.安装ASP.NET.检查失败的请求跟踪日志,以获取有关此错误的其他信息.欲了解更多信息,请点击此处.为扩展名为".xyz"的文件添加MIME映射:appcmd set config/section:staticContent /+[fileExtension='.xyz',mimeType='text/plain']警告:确保此MIME映射是在将Web服务器添加到列表之前需要它.配置文件(如.CONFIG)或动态脚本页(如.ASP或.ASPX)不应直接下载,而应始终通过处理程序进行处理.其他文件(如数据库文件或用于存储配置的文件,如.XML或.MDF)有时用于存储配置信息.确定客户端是否可以在启用它们之前下载这些文件类型.安装ASP.NET.检查失败的请求跟踪日志,以获取有关此错误的其他信息.欲了解更多信息,请点击此处.为扩展名为".xyz"的文件添加MIME映射:appcmd set config/section:staticContent /+[fileExtension='.xyz',mimeType='text/plain']警告:确保此MIME映射是在将Web服务器添加到列表之前需要它.配置文件(如.CONFIG)或动态脚本页(如.ASP或.ASPX)不应直接下载,而应始终通过处理程序进行处理.其他文件(如数据库文件或用于存储配置的文件,如.XML或.MDF)有时用于存储配置信息.确定客户端是否可以在启用它们之前下载这些文件类型.安装ASP.NET.检查失败的请求跟踪日志,以获取有关此错误的其他信息.欲了解更多信息,请点击此处.
详细错误信息:模块StaticFileModule通知
ExecuteRequestHandler处理程序StaticFile错误代码0x80070032请求的URL http://localhost:64107/Settings/Settings.json物理路径D:\ GIT\RepoP_Paneon\Settings\Settings.json登录方法匿名登录用户匿名请求跟踪目录
C:\ Users\stefank\Documents\IISExpress\TraceLogFiles\REPOP_PANEON更多信息:当请求的URL的文件扩展名是针对未在服务器上配置的MIME类型时,会发生此错误.您可以为不是动态脚本页面,数据库或配置文件的文件添加文件扩展名的MIME类型.使用处理程序处理这些文件类型.您不应该允许直接下载动态脚本页面,数据库或配置文件.查看更多信息»
在我的ASP.NET MVC 4项目中,我的.json文件App_Data夹中包含一个文件,其中包含我要加载到D3.js中的地理数据.
到目前为止,我的工作方法是让jQuery对某个Controller执行AJAX调用,返回一个JsonResult - 并且成功时,将JSON存储在一些加载到D3中的Javascript变量中.这一次,我想跳过控制器并.json直接从App_Data文件夹请求静态文件.
我尝试使用.json的相对路径var url = "@Url.Content("~/App_Data/example.json")";,但是Javascript调试器使我有很多奇怪的正则表达式错误.
我还尝试将文件放入Content文件夹以查看目录名称是否有所不同.
var path = "@Url.Content("~/Content/example.json")"; 结果
NetworkError:404 Not Found - localhost:xxxxx/Content/u.json
var path = @Url.Content("~/Content/example.json"); 结果
SyntaxError:无效的正则表达式标志u:var path = /Content/example.json;
var json = $.getJSON("../Content/example.json")似乎向正确的目录发送请求,但返回404错误.此外,使用Razor语法指向相对URL工作,但仍然是404s.我的问题是:是否可以使用存储在App_Data(或Content目录)中的JSON文件,仅使用Javascript/jQuery?在ASP.NET中,只有一种方法可以做到这一点吗?有没有更好的方法完全采取?
首先让我说我有 Linux 背景并且在 Windows 上开发对我来说是相当新的。
我正在处理我在 Visual Studio 中打开的 ASP.NET 项目。该项目最初设置为通过 IIS 运行。VS 很有帮助地问我是否想尝试 IIS Express,我说是的。该应用程序最初有一些小问题,但那是因为代码既旧又庞大。解决这些问题后,应用程序加载正常,但任何静态文件除外。对于文件系统上实际存在的资源,我收到 404 Not Found 错误。
您在照片中看到的物理路径存在于 Web.config 文件旁边的文件夹中。我可以从作为图形目录的同级目录的 exec 目录加载 aspx 文件。图形目录是我试图在这张图片中加载的 favicon.ico 文件所在的位置。
我今天已经阅读了很多关于 IIS 和 IIS express 的文档,但他们都没有提到必须对静态文件做任何特殊的事情。也许我只是厚。如果需要我的 Web.config,请告诉我,我可以在此处附加它。
编辑:
1) 在这方面取得了一些进展。在成熟的 IIS 下,我也遇到了完全相同的错误。我的静态内容不显示。
2)这是请求的web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<!--
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.
The following attributes can be set on the <httpRuntime> tag.
<system.Web>
<httpRuntime targetFramework="4.5" /> …Run Code Online (Sandbox Code Playgroud)