加载资源失败:服务器响应状态为 404(未找到)
Posted
技术标签:
【中文标题】加载资源失败:服务器响应状态为 404(未找到)【英文标题】:Failed to load resource: the server responded with a status of 404 (NOT FOUND) 【发布时间】:2013-03-30 03:23:16 【问题描述】:我是 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)。我没有在我的views.py 中做任何查询,因为我是新手,我对此感到困惑。所以任何编码都需要在views.py 中执行以从json 中获取数据。
3).无法解决上述错误,请提供可能的原因,以便我可以运行此功能。
谢谢
【问题讨论】:
如果这正是你的代码,你在这里有一个错误:` $("ul").append("+value.item1+"");` , missing " 之后(这可能不是你的问题的解决方案,但至少你的 js 不会崩溃) 我建议你直接在浏览器中打开那些<script src=
链接,看看会发生什么。我也期望 404,这意味着 src
路径是错误的。
@Daniel 我纠正了这一点,即使我遇到了同样的错误
@akoskm 我在浏览器中检查脚本 src 链接时遇到同样的错误,所以如何设置路径,我提到了与脚本 src 相同的文件路径,有什么不同的地方需要提一下。请告诉我
@MonkL 不,当您将路径粘贴到浏览器或通过脚本标签检索它时,路径应该等效。此行为意味着src
下的路径无效,并且您的脚本被放置在其他位置。
【参考方案1】:
您需要在settings.py
中设置STATICFILES_DIRS
,但请确保您的文件树如下所示
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>"
【讨论】:
【参考方案2】:你必须在你的 django 设置文件中设置你的 STATIC_URL
和 STATIC_ROOT
,在你的 js src 路径前加上 STATIC_URL
,并告诉 django 在使用开发服务器时提供静态内容(和/或配置你的前端服务器为其提供服务)。全部记录在这里:https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/
注意:在 1.3 版之前,它是 MEDIA_URL 和 MEDIA_ROOT,参见相关文档。
【讨论】:
【参考方案3】:用于开发服务器
-
在 django 根目录下创建一个静态文件夹
将此添加到 settings.py 中的 STATIC_DIRS
('assets','静态文件夹路径')
将资源放在您之前创建的静态文件夹中的相应文件夹中
然后运行 python manage.py collectstatic。这将在 django 根目录中创建一个管理员和一个资产文件夹,其中包含您放置的资产
在模板中,在顶部添加 % load static %
对于链接,请使用 % static 'assets/path_to_resources_as_added_in_the_static_folder' %
这对我有用
【讨论】:
以上是关于加载资源失败:服务器响应状态为 404(未找到)的主要内容,如果未能解决你的问题,请参考以下文章
Apache Cordova:“加载资源失败:服务器响应状态为 404(未找到)”
Angular 5 - 加载资源失败:服务器响应状态为 404(未找到)
加载资源失败:服务器使用 laravel 8 / ajax 响应状态为 404(未找到)
加载资源失败:http://website.azurewebsites.net/signalr/hubs 服务器响应状态为 404(未找到)