我正在尝试在 Django 网站上使用 jQuery。我需要包含 jQuery.js 库。我已经阅读了很多关于 Django 静态文件的内容,但我认为没有人问过这个特定的问题。我只提供三个静态文件:jquery.js、anothersmallfile.js 和styles.css。关于静态文件服务的 Django 文档说:
“对于小型项目,这没什么大不了的,因为您可以将静态文件保存在 Web 服务器可以找到的地方。链接
我想“将它们保存在我的网络服务器可以找到它们的地方”,因为 Django 文档在其他地方清楚地声明(警告)他们的静态文件服务方法仅适用于开发环境。我只有几个静态文件,我只想要最简单的安全解决方案。
不幸的是,我无法让它工作。无论我把文件放在哪里,Django 都找不到它们。通过 Chrome Web 开发人员控制台进行调试,我看到我收到 404 错误:
GET http://127.0.0.1:8000/templates/polls/jquery.js 404 (NOT FOUND)
我是运行服务器的新手。我是否 A.) 需要告诉我的 urls.py 文件在哪里可以找到静态文件?或者问题可能是 B.) 我误解了这个问题 - Django是我的网络服务器(用于生产)所以现在我必须使用 Django 静态文件解决方案?
让我的模板简单地识别与它们位于同一目录中的 .js 文件似乎并不难。我错过了什么吗?
编辑,在我得到更多反对之前:我正在谈论上面链接页面中的这段话:
/////////////////////
Django 开发人员主要关心 Web 应用程序的动态部分——为每个请求重新呈现的视图和模板。但是 Web 应用程序还有其他部分:呈现完整网页所需的静态文件(图像、CSS、Javascript 等)。
对于小型项目,这没什么大不了的,因为您可以将静态文件保存在 Web 服务器可以找到的地方。然而,在更大的项目中——尤其是那些由多个应用程序组成的项目——处理每个应用程序提供的多组静态文件开始变得棘手。
这就是 django.contrib.staticfiles 的用途:它将每个应用程序(以及您指定的任何其他位置)的静态文件收集到一个可以在生产中轻松提供的位置。
///////////////// 强调添加
因此,如果这就是 django.contrib.staticfiles 的用途,那么更简单的解决方案是什么?我认为这是对先前问题的重复。