Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加载.json文件会产生404个错误_Json_Azure - Fatal编程技术网

加载.json文件会产生404个错误

加载.json文件会产生404个错误,json,azure,Json,Azure,我的第一个Azure网站是一个简单的测试网站,我已经有一段时间了,它可以通过ajax调用服务器获取JSON数据。所有数据文件都有.json扩展名。Azure将不会“看到”这些文件。如果我将扩展名改为.txt,它会很好地为它们服务 我必须使用IIS才能看到这个.json吗?是否尝试将特定的MIME类型添加到服务器的配置文件中 如果将mime类型添加为 application/json;字符集=utf 这应该行得通。引用Ahmed Sabbour的博客文章,你必须做到以下几点: “如果您将.jso

我的第一个Azure网站是一个简单的测试网站,我已经有一段时间了,它可以通过ajax调用服务器获取JSON数据。所有数据文件都有.json扩展名。Azure将不会“看到”这些文件。如果我将扩展名改为.txt,它会很好地为它们服务


我必须使用IIS才能看到这个.json吗?

是否尝试将特定的MIME类型添加到服务器的配置文件中

如果将mime类型添加为
application/json;字符集=utf

这应该行得通。

引用Ahmed Sabbour的博客文章,你必须做到以下几点:

“如果您将.json文件上载到Windows Azure网站并尝试访问它,则会出现404 file Not Found错误,因为默认情况下未设置.json的MIME类型。这通常也适用于可能需要特定MIME类型的任何文件

若要解决此问题,请将FTP发送到您的网站并上载以下Web.config文件,该文件将设置正确的MIME类型。如果您已经有了Web.config文件,只需将以下内容添加到相应的部分

<?xml version="1.0"?>

<configuration>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension=".json" mimeType="application/json" />
     </staticContent>
    </system.webServer>
</configuration> 


“。我这样做了,404就不见了。

我也发现艾哈迈德·萨博的博客文章很有帮助,但它给我带来了另一个问题。当我尝试在本地运行Azure Web应用程序时,修复程序对该应用程序起到了作用,但它却可怕地死掉了,到处都是HTTP 500.19。我花了一段时间才弄明白如何在维护单个web.config的同时解决这个问题。解决方案是(尽管有点假)先删除文件扩展名,然后再将其添加回:

<staticContent>
  <remove fileExtension=".json" />
  <mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>


就我的狭隘目的而言,这很好,我希望这可以节省一些人试图弄明白这一点的时间

Azure(至少是云服务)似乎知道如何从部署的ASP.NET MVC项目中提供JSON。在我的例子中,问题是JSON文件属性页上的构建操作设置不正确。将构建操作更改为内容为我修复了它。

duplicate of for me,它仅适用于mimeMap行,但如果我还包括“remove”行,则失败。@JesseSierks Yours的评论解决了我的问题。谢谢你,兄弟!这将取消IIS中已设置的所有其他内容。如果你有CSS、JS或图像,很有可能你必须在web.config文件的这一部分重新声明它们。为了补充这个非常好的答案,如果你正在使用react,用以下方式将这个web.config复制到构建文件夹(使用npm react build)(归功于Liviu Costea):谢谢你。我一直在绞尽脑汁想弄清楚为什么我的manifest.json文件会出现404错误,我认为这是mime类型的问题,而实际上这是我的问题;构建操作设置为“无”。它对我有效。之前我添加了“mimeType=application/json;”,但没有成功。