Не удалось загрузить ресурс: сервер ответил статусом 404 (NOT FOUND)
Я uisng python. Чтобы отображать данные из json файла на страницу, я получаю следующие ошибки.
Failed to load resource: the server responded with a status of 404 (NOT FOUND) http://localhost:8000/static/script/jquery-1.9.1.min.js
Failed to load resource: the server responded with a status of 404 (NOT FOUND) http://localhost:8000/static/script/myscript.js
Файл myscript.js
$("#button").click(function(){
$.getJSON("item.json",function(obj){
$.each(obj,function(key,value){
$("ul").append("<li>+value.item1+"</li>");
$("ul").append("<li>+value.item2+"</li>");
$("ul").append("<li>+value.item3+"</li>");
});
});
});
.json файл
{
"p1":{
"item1":"apple",
"item2":"orange",
"item3":"banana",
},
"p2":{
"item1":"water",
"item2":"milk",
"item3":"alcohol",
}
}
шаблон
<html>
<head>
<body>
<ul></ul>
<button></button>
<script src="script/jquery-1.9.1,min.js" type="text/javascript"></script>
<script src="script/myscript.js" type="text/javascript"></script>
</body>
</head>
</html>
1).js файл находится в папке моего проекта, а путь также установлен.
2). Я не делаю никаких запросов в моих view.py, так как я новичок в этом, я смущен этим. Так что любые кодировки должны выполняться в views.py для извлечения данных из json.
3). Невозможно разобраться с приведенными выше ошибками, пожалуйста, предоставьте мне возможную причину, чтобы я мог запускать эту функцию.
Спасибо
Ответы
Ответ 1
Вы должны установить STATIC_URL
и STATIC_ROOT
в свой файл настроек django, добавить путь js src к {{ STATIC_URL }}
и сообщить django для статического содержимого при использовании сервера dev (и/или настроить ваш фронт сервер для его обслуживания). Все это описано здесь: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/
NB: перед версией 1.3 это MEDIA_URL и MEDIA_ROOT, cf соответствующий документ.
Ответ 2
Для сервера разработки
- Сделать статическую папку в корне django
- Добавьте это в STATIC_DIRS в settings.py('assets', 'путь к статической папке')
- Поместите ресурсы в соответствующие папки в статической папке, которую вы создали ранее
- Затем запустите python manage.py collectstatic. Это создаст папку admin и assets в корне django с активами, которые вы положили.
- В шаблонах добавить {% load static%} вверху
- Для ссылки используйте {% static 'assets/path_to_resources_as_added_in_the_static_folder'%}
Это работает для меня
Ответ 3
вам нужно установить STATICFILES_DIRS
в settings.py
но убедитесь, что ваше дерево файлов похоже ниже
RootDir
+--myproject
| +--static
| | +--script
| | |--myscript.js
| | |--jquery-1.9.1.min.js
| |--settings.py
+--myapp
|--manage.py
в settings.py
добавить или заменить
STATIC_URL = '/static/'
с
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATICFILES_DIRS = [
os.path.join(PROJECT_ROOT, 'static'),
]
STATIC_URL = '/static/'
другое исправление: заменить запятую ,
в <script src="script/jquery-1.9.1,min.js"
а также
добавьте двойную кавычку "
, замените "<li>+value.item1+"</li>"
с "<li>"+value.item1+"</li>"