我正在尝试在Django网站上使用jQuery。我需要包含jQuery.js库。我已经阅读了很多关于Django静态文件的内容,但我认为没有人问过这个问题。我只有三个静态文件:jquery.js,anothersmallfile.js和styles.css。关于静态文件服务的Django文档说:
“对于小型项目,这不是什么大问题,因为您可以将静态文件保存在您的Web服务器可以找到的地方。link
我想“只是将它们保存在我的网络服务器可以找到它们的地方”,因为在其他地方,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静态文件解决方案?< / p>
似乎不应该让我的模板很难识别出与它们在同一目录中的.js文件。我错过了什么吗?
编辑,在我获得更多downvotes之前:我正在谈论上面链接的页面中的这段话:
///////////////////////
Django开发人员主要关注Web应用程序的动态部分 - 为每个请求重新呈现的视图和模板。但Web应用程序还有其他部分:呈现完整网页所需的静态文件(图像,CSS,Javascript等)。
对于小型项目,这不是什么大问题,因为您可以将静态文件保存在Web服务器可以找到的位置。 但是,在更大的项目中 - 尤其是那些由多个应用组成的项目 - 处理每个应用程序提供的多组静态文件开始变得棘手。
这就是django.contrib.staticfiles的用途:它将每个应用程序(以及您指定的任何其他地方)的静态文件收集到一个可以轻松在生产中提供的位置。 / p>
/////////////////// 强调增加了
那么,如果这是django.contrib.staticfiles的用途,那么更简单的解决方案是什么?我认为这是先前问题的重复。
答案 0 :(得分:2)
您需要更仔细地阅读该文档。该警告适用于生产。在开发中,您确实使用了静态服务方法,即将其放在urls.py中。而且,该文档还将显示模板目录不适合放置它们:单独的静态或媒体目录。
评论后修改我真的不明白你的评论。您可以通过静态服务视图进行开发,也可以使用生产服务器。但是你说你没有生产服务器。当你得到一个,无论是Apache还是Nginx或其他什么时,你将静态文件放在一个目录中,并告诉该服务器从那里提供文件。 是这个简单的解决方案。 staticfiles应用程序与您引用的文档完全相同,适用于您在不同应用程序中获得大量文件时(它简化了从开发到生产的过程,而不是像您想象的那样使其复杂化)。
答案 1 :(得分:1)
假设您的应用是www。
这就是全部。