[英]stylesheet not loading from relative path in django
当前在django中设置了文件夹结构:
{appname} \\ templates \\
{appname} \\ templates \\ assets \\ css \\
但是,当我尝试在{appname}\\templates\\
模板中包含诸如<link rel="stylesheet" href="assets/css/bootstrap.css" />
之类的内容时,无论出于何种原因都不会加载; 我可以直接从twitter加载,但如果可能的话,我希望保留相对路径。
为什么这不起作用? 如果有任何线索,PyCharm中的子文件夹将显示为浅灰色,不知道为什么会发生这种情况。
编辑 :好的,所以我在这里阅读了有关如何设置静态文件的信息,并在我的主项目文件夹下建立了一个static
目录,并在其下面有一个css
文件夹。
我更新了settings.py以包括:
# 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.
)
然后尝试添加
<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap.css" />
到我的html文件,但未加载-我在这里做错了什么?
您想将css放在应用程序根目录中名为static的文件夹中。 然后确保INSTALLED_APPS
(在settings.py中)包含了django.contrib.staticfiles
。 现在,当您运行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
中的STATICFILES_DIR
)移动到STATIC_ROOT
定义的文件夹。 然后让您的网络服务器在STATIC_URL
提供这些文件(django不会处理,实际上django文档似乎建议您甚至不使用与服务django应用程序相同的网络服务器)。
您可以将静态文件放置在所需的任何位置,并由django对其进行管理,只需在STATICFILES_DIR元组中包含目录的位置即可。
看一看在文档上提供静态文件。 (我假设您正在使用django 1.4)
您不应将媒体文件放在模板目录中。 每个应用使用一个媒体目录(在这种情况下为静态),以便您的设置文件可以找到它,请参阅Django目录结构?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.