Подтвердить что ты не робот

Загрузка файлов .json генерирует 404 ошибки

Мой первый веб-сайт Azure - это простой тестовый сайт, который я использовал некоторое время, что делает ajax-вызовы на сервер для данных JSON. Все файлы данных имеют расширения .json. Azure не будет "видеть" эти файлы. Если я изменил расширение на .txt, он отлично их обслуживает.

Нужно ли гадать с IIS, чтобы увидеть этот .json?

4b9b3361

Ответ 1

Я тоже нашел сообщение в блоге Ahmed Sabbour полезным, но это создало дополнительную проблему для меня. Хотя исправление работало в Azure Web App, когда я попытался запустить приложение локально, он ужасно умер, бросая HTTP 500.19 всюду. Мне потребовалось некоторое время, чтобы понять, как исправить это, сохранив единственный web.config. Решение было (хотя и немного выдумки) сначала удалить файлExtension, а затем добавить его обратно:

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

Для моих узких целей это было прекрасно, и я надеюсь, что это может сэкономить время, пытаясь понять это.

Ответ 2

Ссылаясь на Ahmed Sabbour со своим сообщением в блоге http://blogs.msdn.com/b/africaapps/archive/2013/06/07/how-to-serve-static-json-files-from-a-windows-azure-website.aspx, вы должны сделать следующее:

"Если вы загрузите файл .json на свой веб-сайт Windows Azure и попытаетесь получить к нему доступ, он даст вам ошибку 404 File Not Found, потому что тип MIME.json не установлен по умолчанию. Это также относится к общий для любого файла, для которого может потребоваться определенный тип 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 исчез.

Ответ 4

Похоже, что Azure (Cloud Services, по крайней мере) знает, как обслуживать JSON из развернутого проекта ASP.NET MVC. В моем случае проблема заключалась в том, что не было установлено корректное действие Build Action на странице свойств файла JSON. Изменение действия сборки для контента исправило это для меня.