我的静态 CSS 不适用于我的 Django 网络应用程序时遇到问题。我已按照 Django 静态链接教程 中关于处理静态文件的说明进行操作,但它仍然无法正常工作。
设置
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = '/Users/a9austin/Development/sites/AlphaSocks/src/static_root/'
# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
'/Users/a9austin/Development/sites/AlphaSocks/src/staticfiles'
)
看法
#from django.http import HttpResponse
from django.shortcuts import render_to_response
def index(request):
return render_to_response('index.html')
索引.html
<link rel="stylesheet" href="{{STATIC_URL}}css/style.css" type="text/css" media="screen" >
我的目录组织是
src->staticfiles->css->style.css
原文由 AustinT 发布,翻译遵循 CC BY-SA 4.0 许可协议
要使 Django 提供静态文件,您必须确保有几个设置。
STATIC_URL
此设置指定静态文件应映射到的 url。你已经完成了。
STATICFILES_DIRS
这指定了系统上 Django 应在其中查找静态文件的所有文件夹。这个想法是你的项目中可能有几个应用程序,每个应用程序可能需要一组不同的静态文件。因此,出于组织目的,每个应用程序可能包含一个
static
目录,它将仅存储它的静态文件。所以 Django 必须有办法知道这些目录在哪里。这就是此设置的用途。静态根目录
此设置指定 Django 将所有静态文件复制到的位置,而不是静态文件已经存在的位置。这个想法是,一旦您将开发投入生产,Django 将无法再提供静态文件,因为我不会在此处讨论(在 文章中)。但是对于生产环境,所有静态文件都应该在一个目录中,而不是在
STATICFILES_DIRS
中指定的许多目录中。因此,此设置指定一个目录,Django 将通过运行以下命令从STATICFILES_DIRS
中的所有文件中复制所有静态文件:请注意,只有在您投入生产后才需要这样做,并且此处指定的目录不能与
STATICFILES_DIRS
中指定的任何目录相同。网址.py
在为 Django 提供静态文件服务的开发过程中,您必须在 urls.py 中包含静态 url:
一旦你完成了上述所有事情,只要你有
DEBUG = True
就应该提供你的静态文件。在上面的列表中,您似乎只完成了STATIC_URL
。另请注意,我上面描述的所有步骤都在您在问题中链接的文档中( 链接)。一开始可能有点混乱,但如果你读几遍,它就会变得更清楚。