我正在设置一个初学者django应用程序,我不能让它显示静态内容。 (css和jpg)文件。文档很混乱,我需要一些非常基础的帮助。
我的静态文件位于:'/ home / me / django_projects / myproject / site_media'。在这里有目录:'images'和'css'
我在静态的一切上得到404错误。即使我尝试直接从http://localhost:8000/site_media/images/test_image.jpg
提取文件这是我应该触发静态内容的html代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Django Test </title>
<link href="{{ STATIC_URL }}/css/style.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
This is my body... blah blah blah
<p>Here is an image: <img src="{{ MEDIA_URL }}images/media.jpg" alt="Foobar" />
</body>
以下是我的设置文件。我已经尝试了我能想到的媒体和静态配置的每种组合。有谁看到我在这里做错了什么?
文件:settings.py
# Example: "/home/media/media.lawrence.com/media/"
MEDIA_ROOT = '/home/me/django_projects/myproject/site_media/'
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/admin_media/'
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
"/home/me/django_projects/myproject/static",
)
# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
#...
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'jim',
)
文件:urls.py
urlpatterns = patterns('',
(r'^customers/$', 'jim.views.index'),
(r'^customers/(?P<customer_id>\d+)/$', 'jim.views.detail'),
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/media'}),
(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/media'}),
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
)
有人看到这里有什么不对吗?
答案 0 :(得分:0)
看起来你可能有两个正斜杠:
STATIC_URL = '/static/'
"{{ STATIC_URL }}/css/style.css"
会给你
"/static//css/style.css"
在浏览器中查看页面源并查看URL的编写方式
答案 1 :(得分:0)
如果我查看您的配置,我希望该文件位于:
http://localhost:8000/media/images/test_image.jpg
但请阅读关于静态与媒体的django文档。媒体用于用户上传的内容,静态用于网站内容,如css / images。