mus*_*fiq 5 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)
Run Code Online (Sandbox Code Playgroud)
`然后补充说:
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')
Run Code Online (Sandbox Code Playgroud)
在urls.py文件中添加:
from django.conf import settings
urlpatterns = patterns('',
(r'^media/(?P<path>.*)$', 'django.views.static.serve', { 'document_root' : settings.MEDIA_ROOT }),
Run Code Online (Sandbox Code Playgroud)
在模板文件中,我尝试过所有这些类型的声明:
<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" />
Run Code Online (Sandbox Code Playgroud)
但是当我将模板文件加载为简单的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" />
Run Code Online (Sandbox Code Playgroud)
这很有效.但我需要在我的Django项目中集成.希望能得到导航并解决它:)谢谢
您尝试失败的事项列表中的语法正确:
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}test.css" />
Run Code Online (Sandbox Code Playgroud)
如果您将自己定义MEDIA_URL为"/ media /",那么该链接就可以了/media/test.css.
只要您具有以下目录结构:
my_project
|-- settings.py
|-- urls.py
|-- media
|-- test.css
Run Code Online (Sandbox Code Playgroud)
我会仔细检查你的所有文件和目录名称,确保你没有任何错误/额外的斜杠等.
另外,我认为"test.css"应该是"screen.css",就像你在其他所有例子中一样......
但基本上,使用绝对URL路径(从斜杠开始表示它从站点根目录解析)将与使用相对路径(../)一样,只要您实际将文件放在正确的位置即可.然后你会有什么工作.
我的目录结构如下:
|-- test_form
|-- /settings.py
|-- /urls.py
|-- /media
| '-- test.css
'-- /templates
'-- ...
Run Code Online (Sandbox Code Playgroud)
我在 template.html 文件中添加了以下语法:
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}test.css" />
Run Code Online (Sandbox Code Playgroud)
我很困惑问题出在哪里。