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

问题描述:

我正在为我的一个Web项目学习Django。 在我的项目中添加css,jquery文件时遇到困难。 该模板非常简单,不需要使用扩展。只需一个页面形式。 我所做的宣布我的媒体文件: 在settings.py文件: 补充道:如何在我的django项目中添加css和jquery文件?

`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" /> 

这worked.But我需要我的Django项目中集成。 希望将获得导航和解决它:) 感谢

+1

你的'MEDIA_URL'和'ADMIN_MEDIA_PREFIX'完全相同。由于'runserver'会自动为您提供媒体管理,因此这可能是您遇到的问题的根源。尝试将'ADMIN_MEDIA_PREFIX'设置为其他内容,如'/ media/admin /'。 – eternicode 2010-11-20 16:39:20

我的目录结构如下:

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

而且我在template.html文件添加以下语法:

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

我感到困惑问题的所在。

正确的语法是在你失败尝试的事情的清单:

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

如果你定义MEDIA_URL为“/媒体/”,然后该链接将成为/media/test.css

前提是你有以下目录结构:

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

我会仔细检查所有的文件和目录名,确保你没有任何错误的/多余的斜线等

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

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

我认为在urls.py,你可能已经错过了在urlpatternsurl,即:

URL模式=模式( '',网址(R'^媒体/(P? *)$','django.views.static.serve',{'document_root':settings。MEDIA_ROOT}),