更新了我的文件夹结构如下: 运行manage.py collectstatic coomand之后,django的静态文件被复制到我的项目文件夹,如下所示,然后我把我的logo.png放到它的img /
mysite_new/
manage.py
mysite/
------ __init__.py
urls.py
setting.py
wsgi.py
templates/
default.html
static/
img/
logo.png
.....
ticket/
------__init__.py
models.py
view.py
urls.py
......
在setting.py中,我设置了
PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))
MEDIA_URL = ''
MEDIA_ROOT = ''
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_PATH,'static')
STATICFILES_DIRS = (
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
并在mysite / urls.py中设置
urlpatterns = patterns('',
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^hello/', hello),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT },name="media"),
)
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>staitc sample</title>
</head>
<body>
<img src="{{ STATIC_URL }}img/logo.png"" alt="hahhaa">
</body>
</html>
在ticket / view.py
中def hello(request):
return render_to_response( 'admin/default.html')
然后在网络浏览器中,在输入http://127.0.0.1:8000/hello
中,它会显示
然后我从“hahhaa”加载图像,它链接到
没有显示图片,因此图像路径可能不正确,图像未成功加载。 谁可以帮助我在我的hello方法view.py中制作你的图片图片? 这个问题困扰了我很长一段时间,感谢你的帮助。 我的django版本是1.4。
我已经找到了解决方案,无需移动我的静态文件夹,只需将其与ticket /保持相同级别,然后在setting.py中添加ADMIN_MEDIA_PREFIX ='/ static / admin /'
答案 0 :(得分:0)
您应该将静态目录移动到mysite。徽标的网址为127.0.0.1:8000/static/images/logo.png
并将STATIC_ROOT设置为一级:
STATIC_ROOT = os.path.join(PROJECT_ROOT, '..', 'static')
这是collectstatic命令将复制项目和应用程序的静态文件的地方。
UPD:
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT },name="media"),
这里应该是settings.STATIC_ROOT。对于开发,您还可以使用:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
https://docs.djangoproject.com/en/dev/howto/static-files/#staticfiles-development
答案 1 :(得分:0)
在urls.py
中尝试以下操作from django.conf import settings
from django.conf.urls.static import static
位于文件底部
if settings.DEBUG and settings.MEDIA_ROOT:
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
答案 2 :(得分:0)
问题出在您的网址文件中。你带django服务函数路径到媒体根而不是你的静态。
试一试:
urlpatterns = patterns('',
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^hello/', hello),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT },name="media"),
)
答案 3 :(得分:0)
语法错误
<img src="{{ STATIC_URL }}img/logo.png"" alt="hahaha">
正确的语法-
<img src="{{ STATIC_URL }}img/logo.png" alt="hahhaa">
或
<img src="{% static 'img/logo.png' %}" alt="hahhaa">