无法将css文件或图像附加到Django模板

时间:2014-10-11 11:03:53

标签: django

上网冲浪,我找到了解决问题的方法。但它没有帮助(Include CSS and Javascript in my django template)最后的回答。 我在urls.py中添加了这个:

urlpatterns += patterns('',
    url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
)

这是我的settings.py

CURRENT_PATH = os.path.abspath(os.path.dirname(__file__).decode('utf-8'))

MEDIA_ROOT = os.path.join(CURRENT_PATH, 'media')

MEDIA_URL = '/media/'

STATIC_ROOT = 'static/'

STATIC_URL = '/static/'

STATICFILES_DIRS = (
                    os.path.join(CURRENT_PATH, 'static'),
)

我的模板:

<html>

<head lang="en">
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/main.css" />
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/bootstrap.min.css" />
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/font-awesome.min" />
    <title></title>
</head>
<body>
{% load staticfiles %}
<div id="modal" class="modal fade">
            <div class="modal-header">
                    <div>Вхід у систему</div>
            </div>
            <div class="modal-body">
                <form action = "/login/" method="post">
                <div>
                    <label for="username">Логін:</label>
                    {{form.username}}
                </div>
                <div>
                    <label for="password">Пароль:</label>
                    {{form.password}}
                </div>
                <br>
                <div>
                    <input type="submit"  value="Submit">
                </div>
                </form>
            </div>
       </div>


<img src="{{STATIC_URL}}ukraine.png" alt="My image"/>
</body>
</html>

结果CSS文件不起作用,甚至找不到图像。 我为静态文件创建了文件夹:D:\KIT\static\css

2 个答案:

答案 0 :(得分:0)

来自官方documents

  1. 确保您已将django.contrib.staticfiles纳入INSTALLED_APPS

  2. 什么是CURRENT_PATH?确保它是D:\KIT\

  3. 然后你可以这样包含它们:

    <link rel="stylesheet" type="text/css" href="{% static "css/main.css" %}" />
    
  4. 确保您的模板以{% load staticfiles %}

  5. 开头

答案 1 :(得分:0)

你可能忘记了运行collectstatic。每次在开发过程中发生变化时运行它都是非常不切实际的,所以为了避免这种情况,你必须修改你的设置。

将django.contrib.staticfiles添加到您的INSTALLED_APPS并设置DEBUG = True,然后runserver将为您完成繁重的工作。

我还建议在{{STATIC_URL}}上使用静态模板标记{%static'path / to / static.css'%}并在第一行放置templatetag加载(如果扩展模板,则为第二行) )你的模板文件。