我正在为我的一个网络项目学习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项目中集成。 希望能得到导航并解决它:) 感谢
答案 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}),