如何在我的django项目中添加css和jquery文件?

时间:2010-11-20 08:39:22

标签: django file django-templates

我正在为我的一个网络项目学习Django。 面对在我的项目中追加css,jquery文件的困难。 模板非常简单,不需要使用extends.Just一页表单。 我做了什么来声明我的媒体文件: 在settings.py文件中: 添加路径:

`import os

def path(*x):
    return os.path.join(os.path.abspath(os.path.dirname(__file__)), *x)

` 然后补充说:

MEDIA_ROOT = path('media') #media is my folder where all the css,js file are 
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/media/'
TEMPLATE_DIRS = (
    path('templates')

在urls.py文件中添加:

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

在模板文件中,我尝试过所有这些类型的声明:

<script type="text/javascript" src="/media/jquery.min.js"></script> 
    <script type="text/javascript" src="/media/site.js"></script>   
    <link rel="stylesheet" type="text/css" media="screen" href="/media/screen.css" />
    <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}test.css" />
<link rel="stylesheet" type="text/css" media="screen" href="../media/screen.css" />

但是当我将模板文件加载为简单的html时:

<script type="text/javascript" src="../media/jquery.min.js"></script> 
    <script type="text/javascript" src="../media/site.js"></script> 
<link rel="stylesheet" type="text/css" media="screen" href="../media/screen.css" />

那很有用。但我需要在我的Django项目中集成。 希望能得到导航并解决它:) 感谢

3 个答案:

答案 0 :(得分:6)

正确的语法出现在您尝试失败的事项列表中:

<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}test.css" />

如果您将MEDIA_URL定义为“/ media /”,则该链接将为/media/test.css

如果您具有以下目录结构:

my_project
    |-- settings.py
    |-- urls.py
    |-- media
        |-- test.css

我会仔细检查所有文件和目录名称,确保没有任何错误/额外的斜杠等。

另外,我认为“test.css”应该是“screen.css”,就像你在其他所有例子中一样......

但基本上,使用绝对url路径(从斜杠开始指示它从站点根目录解析)将与使用相对路径(../)一样工作,只要你实际上有你的文件在正确的地点。 然后你会有什么工作。

答案 1 :(得分:2)

我的目标结构如下:

|-- test_form
|-- /settings.py
|-- /urls.py
|-- /media
|   '-- test.css
'-- /templates
    '-- ...

我在template.html文件中添加了以下语法:

<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}test.css" />

我很困惑问题所在。

答案 2 :(得分:2)

我认为在urls.py中,您可能错过了url中的urlpatterns,即:

  

urlpatterns = patterns('', url (r'^ media /(?P。*)$','django.views.static.serve',{'document_root':设置。 MEDIA_ROOT}),