如何在我的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项目中集成。 希望将获得导航和解决它:) 感谢
答
我的目录结构如下:
|-- 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,你可能已经错过了在urlpatterns
的url
,即:
URL模式=模式( '',网址(R'^媒体/(P? *)$','django.views.static.serve',{'document_root':settings。MEDIA_ROOT}),
你的'MEDIA_URL'和'ADMIN_MEDIA_PREFIX'完全相同。由于'runserver'会自动为您提供媒体管理,因此这可能是您遇到的问题的根源。尝试将'ADMIN_MEDIA_PREFIX'设置为其他内容,如'/ media/admin /'。 – eternicode 2010-11-20 16:39:20