Загрузка файлов .json генерирует 404 ошибки
Мой первый веб-сайт Azure - это простой тестовый сайт, который я использовал некоторое время, что делает ajax-вызовы на сервер для данных JSON. Все файлы данных имеют расширения .json. Azure не будет "видеть" эти файлы. Если я изменил расширение на .txt, он отлично их обслуживает.
Нужно ли гадать с IIS, чтобы увидеть этот .json?
Ответы
Ответ 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 исчез.
Ответ 3
Вы пытались добавить определенный тип MIME в файл конфигурации сервера?
http://www.iis.net/configreference/system.webserver/staticcontent/mimemap
Если вы добавите тип mime как application/json; charset=utf
которые должны работать.
Ответ 4
Похоже, что Azure (Cloud Services, по крайней мере) знает, как обслуживать JSON из развернутого проекта ASP.NET MVC. В моем случае проблема заключалась в том, что не было установлено корректное действие Build Action на странице свойств файла JSON. Изменение действия сборки для контента исправило это для меня.