Django静态文件链接

时间:2013-04-13 15:27:40

标签: css django django-staticfiles static-files

感谢您对此进行调查,因为它现在让我感到紧张:)

我无法获得一个style.css(或者任何静态文件都可以得到用!)而且我已经用Google搜索了,到目前为止还没有解决方案。

my urls.py:

 from django.conf.urls import patterns, include, url
 from django.contrib.staticfiles.urls import staticfiles_urlpatterns
 from django.conf import settings

 urlpatterns = patterns('',
   url(r'^$', 'ports.views.home', name='home'),
 )
 urlpatterns += staticfiles_urlpatterns()

 if settings.DEBUG:
    urlpatterns += patterns('django.contrib.staticfiles.views',
    url(r'^static/(?P<path>.*)$', 'serve'),
)

我的base.html,我加载静态:

{% load staticfiles %}

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="static/css/style.css" type="text/css" />
...

我的settings.py引用了静态目录:

STATIC_URL = '/static/'

我不明白我做错了什么(或者实际上为什么它必须如此笨拙地服务这些静态)。任何湖人方面的帮助都将不胜感激!

谢谢, blargie-BLA

3 个答案:

答案 0 :(得分:1)

在您的服务器上,您可能需要尝试此操作

python manage.py collectstatic -l

-l创建符号链接而不是复制。这可以防止同一文件的两个副本并节省一些空间,但也意味着如果重命名原始文件,则必须重新建立链接。

有关collectstatic命令here的更多信息。

不要忘记设置STATIC_ROOT

仅供参考,我的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 = os.path.join(os.path.dirname(__file__), '..', 'static').replace('\\', '/')

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

这适用于Django 1.4+,其中settings.py位于(例如)mysite/mysite/之下,并且与static文件夹不在同一级别。

答案 1 :(得分:1)

我的问题是在外块内容中添加CSS。将其移动到块内容中可以解决此问题。

{% extends "home/base.html" %}
{% load static %}
<!--<link rel="stylesheet" href="{% static 'blog/main.css' %}">-->
{% block content %}
<link rel="stylesheet" href="{% static 'blog/main.css' %}">

     --some code--

{% endblock content%

答案 2 :(得分:0)

尝试:

{% load static %}
<link rel="stylesheet" href="{% static 'css/style.css' %}" type="text/css" />