样式表没有从django中的相对路径加载

时间:2013-02-14 04:44:25

标签: python html css django twitter-bootstrap

目前在django中设置了文件夹结构:

  

{appname} \ templates \

     

{APPNAME} \模板\资产\ CSS \

但是当我尝试在<link rel="stylesheet" href="assets/css/bootstrap.css" />的模板中添加{appname}\templates\之类的内容时,无论出于何种原因,它都没有加载;我可以直接从twitter加载,但我更愿意保留相对路径。

为什么这不起作用?如果它是任何线索,PyCharm中的子文件夹显示为浅灰色,不知道为什么会发生这种情况。


编辑:好的,所以我读了here有关如何设置静态文件的信息,并在我的主项目文件夹下设置了static目录,其中包含{ {1}}下方的文件夹。

我更新了settings.py以包含:

css

然后尝试添加

# 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 = '' # URL prefix for static files. # Example: "http://media.lawrence.com/static/" STATIC_URL = '/static/' # Additional locations of static files import os.path STATICFILES_DIRS = ( os.path.dirname(__file__).replace('\\','/'), # 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. )

到我的html文件,但它没有加载 - 我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

您希望将css保存在应用根目录中名为static的文件夹中。然后确保django.contrib.staticfiles包含在INSTALLED_APPS中(在您的settings.py中)。现在,当您运行python manage.py runserver时,您的静态文件将在localhost:8000 / static /(由STATIC_URL设置定义 - 默认为static/)。

您需要确保在视图中使用RequestContext对象。这可以确保来自settings.py的变量(例如STATIC_URL)在模板中可用 -

def your_view(request):
    #...
    return render_to_response('page.html', context_data, context_instance=RequestContext(request))

(如果您使用新的render()快捷方式代替render_to_response,则会为您处理此问题)

如果您在生产环境中提供文件,那么您可以使用python manage.py collectstatic命令移动所有静态文件(即应用程序根目录中名为static/的文件夹中的任何内容)以及任何内容在STATICFILES_DIR)中,STATIC_ROOT定义的文件夹。然后让您的网络服务器在STATIC_URL处提供这些文件(这不是由django处理的,事实上django文档似乎建议您甚至不使用与django应用程序相同的网络服务器)。

您可以将静态文件放在任何地方,并让django管理它们,只需在STATICFILES_DIR元组中包含目录的位置。

查看提供静态文件的docs。 (我假设你正在使用django 1.4)

答案 1 :(得分:0)

您不应将媒体文件放在模板目录中。每个应用使用媒体目录(在本例中为静态),以便您的设置文件可以找到它,请参阅Django directory structure?

另见Confusion in Django admin, static and media files