这是pf项目的目录结构。
mysite
\media
\static
\images
\css
base.css
\js
\templates
base.html
\settings.py #and other .py files
现在说如果我有一个文件C:\mysite\static\css\base.css
或一个图像C:\mysite\static\images\ball.png
。我将如何使用django开发服务器来提供它。我知道这不是推荐方式,但只是在开发中我希望这个工作。我已经阅读了stackoverflow上的文档和其他答案,但它们似乎不起作用。可能是media
和static
以及urlpatterns
让我感到困惑。我花了好几个小时试图解决这个问题,但仍然没有运气。
我是django的新手,所有这些对我来说只是一个过度杀戮来获得css或图像。
我需要做些什么改变或编辑才能使其工作。我将如何在模板中引用图像和css?
答案 0 :(得分:4)
以下是Django documentation中静态文件的方法,它将逐步引导您完成整个过程。
将以下内容添加到您的urls.py
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
# ... the rest of your URLconf goes here ...
urlpatterns += staticfiles_urlpatterns()
然后'当您使用内置的runserver管理命令时,此视图将自动启用并将在STATIC_URL处为您的静态文件提供服务。 ...这将检查您的STATIC_URL设置并连接视图以相应地提供静态文件。不要忘记适当地设置STATICFILES_DIRS设置,让django.contrib.staticfiles知道在app目录中除了文件之外还要查找文件的位置。'
值得一提的是,这绝对不适合部署,但适用于开发。
答案 1 :(得分:3)
问题在于你不应该在STATIC_ROOT
中手动输入任何内容。它只是生产中collectstatic
管理命令的倾销场,应该由您的网络服务器提供。
在开发过程中,Django 会自动为应用的“静态”目录和STATICFILES_DIR
中的任何文件夹提供任何内容。如果您有项目范围的静态资源,则需要创建一个完全独立的文件夹,不同于STATIC_ROOT
和MEDIA_ROOT
,并将其添加到STATICFILES_DIRS
。我通常把它称为“资产”,但它的名字并不重要。
答案 2 :(得分:0)
media
和static
的完整路径添加到STATICFILES_DIRS
TEMPLATE_CONTEXT_PROCESSORS
中有'django.core.context_processors.static',
。 默认为 {{ STATIC_URL }}images/ball.png
。