一尘不染

Django:CSS无法正常工作

django

我对django还是陌生的,我的CSS工作有问题。
我按照链接的指示进行操作: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')

index.html

<link rel="stylesheet" href="{{STATIC_URL}}css/style.css" type="text/css" media="screen" >

和目录组织

src-> staticfiles-> css-> style.css

非常感谢您的帮助和宝贵的时间!


阅读 611

收藏
2020-04-02

共1个答案

一尘不染

为了让Django提供静态文件,你必须确保有几个设置。

STATIC_URL

此设置指定静态文件应映射到的URL。你已经完成了。

STATICFILES_DIRS

这指定了系统上Django应该在其中查找静态文件的所有文件夹。这个想法是,你的项目中可能有几个应用程序,每个应用程序可能需要一组不同的静态文件。因此,出于组织目的,每个应用程序可能都包含一个static目录,该目录将仅存储其静态文件。因此,Django必须拥有一种方法来知道这些目录在哪里。这就是该设置的目的。

STATIC_ROOT

此设置指定Django将所有静态文件复制到的位置,而不是静态文件已经存在的位置。这个想法是,一旦你将开发工作投入生产,Django便会由于问题而不再提供静态文件,我将不再在此处讨论(在本文中)。但是,对于生产而言,所有静态文件都应位于单个目录中,而不要位于中指定的许多目录中STATICFILES_DIRS。因此,此设置指定了Django STATICFILES_DIRS通过运行以下命令从所有文件中复制所有静态文件到的目录:

$ python manage.py collectstatic

请注意,只有在投入生产后这才是必需的,而且此处指定的目录不能与中指定的任何目录相同STATICFILES_DIRS。

Urls.py

在Django的开发中,为你的静态文件提供服务,你必须在urls.py中包含静态url:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = ...

urlpatterns += staticfiles_urlpatterns()

完成上述所有操作后,只要有静态文件,就应继续提供DEBUG = True。在上面的列表中,你似乎只完成了STATIC_URL。另外请注意,我上面描述的所有步骤都在你在问题(link)中链接的文档中。一开始可能会有些混乱,但是如果你阅读几次,它将变得更加清晰。

2020-04-02