加载资源失败:服务器响应状态为 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 不会崩溃) 我建议你直接在浏览器中打开那些&lt;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/'

另一个修复: 在&lt;script src="script/jquery-1.9.1,min.js"中替换逗号,

添加双引号",将"&lt;li&gt;+value.item1+"&lt;/li&gt;"替换为"&lt;li&gt;"+value.item1+"&lt;/li&gt;"

【讨论】:

【参考方案2】:

你必须在你的 django 设置文件中设置你的 STATIC_URLSTATIC_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(未找到)”

加载资源失败:服务器响应状态为 404(未找到)

加载资源失败:服务器响应状态为 404(未找到)

Angular 5 - 加载资源失败:服务器响应状态为 404(未找到)

加载资源失败:服务器使用 laravel 8 / ajax 响应状态为 404(未找到)

加载资源失败:http://website.azurewebsites.net/signalr/hubs 服务器响应状态为 404(未找到)