Django:使用静态,艰难的时间来渲染css的路径

时间:2014-04-07 04:17:29

标签: html css django django-templates django-staticfiles

这有点尴尬,但我不知道如何解决这个问题:

首先,我的项目目录看起来像这样(有更多目录,但我们并不关心它们):

projectfolder/
   wsgi/
     openshift/
         templates/
             home/
                simple-sidebar.html
     static/
        css/
        fonts/
        js/

我们关注的文件是simple-sidebar.html,如下所示:

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">

<title>Starter Template for Bootstrap</title>

<!-- Bootstrap core CSS -->
<link href= "{% static "css/bootstrap.css" %}" rel="stylesheet">

<!-- Add custom CSS here -->
<link href="{% static "css/simple-sidebar.css" %}" rel="stylesheet">
<link href="{% static "font-awesome/css/font-awesome.min.css" %}" rel="stylesheet">

</head>

现在由于某种原因,我的静态模板标签无效,但这可能是因为我不知道如何在settings.py中设置我的静态模板内容:

STATIC_ROOT = os.path.join(PROJECT_DIR, '..', 'static')

STATIC_URL = '/static/'

STATICFILES_DIRS = ()    <--- dont know if I need this one?

STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

PS:如果没有{%static%}标签,你会怎么做?我不确定我的样式表href会是什么样子。

1 个答案:

答案 0 :(得分:0)

尝试从STATIC_ROOT中删除点,例如

STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')

如果您想将其他文件夹映射到可以在您计算机上的任何位置的应用程序,那么

STATICFILES_DIRS可供您使用。当您运行./manage.py collectstatic时,您实际上是要求python查找所述目录中的所有文件并将其放入STATIC_ROOT

中定义的静态文件夹中

如果您想手动映射文件(没有静态标记),则必须写出文件的完整路径,例如/some/directory/path/css/style.css

最后,如果您使用的是DEBUG = True,则需要将您的静态和媒体网址添加到urls.py,以便有一条实际的路径。例如

from django.conf import settings

# ... your normal urlpatterns here

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
        'document_root': settings.MEDIA_ROOT}),
        (r'^static/(?P<path>.*)$', 'django.views.static.serve', {
        'document_root': settings.STATIC_ROOT}))
相关问题