我剛開始使用Django,在AptanaStudio3中使用PyDev。我使用有用的Django教程來構建我簡單項目的主幹。現在我正在嘗試使用css進行一些基本的格式設置和着色,但花費了相當長時間的努力。使用Django訪問.css文件時遇到困難
html頁面仍然顯示正常。它只是沒有抓住CSS(404)。我知道這從控制檯:
[20/Mar/2013 12:41:51] "GET /signup/ HTTP/1.1" 200 306
[20/Mar/2013 12:41:51] "GET /signup/static/signup.css HTTP/1.1" 404 2750
我的文件結構:
Learning
- Learning
--- templates
----- 404.html
----- 500.html
--- _init.py
--- settings.py
--- urls.py
--- wsgi.py
- signup
--- static
----- signup.css
--- templates
----- signup
------- detail.html
------- index.html
------- results.html
----- __init__.py
----- admin.py
----- models.py
----- tests.py
----- urls.py
----- view.py
--- manage.py
--- sqlite.db
--- python
在設置:
STATIC_ROOT = ''
STATIC_URL = 'static/'
STATICFILES_DIRS = ('')
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
在我的HTML模板:
<html>
<head>
<title>User List</title>
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}signup.css" />
...
在意見。 py:
def ip_address_processor(request):
return {'ip_address': request.META['REMOTE_ADDR']}
def index(request):
user_list = User.objects.order_by('name')[:5]
template = loader.get_template('signup/index.html')
context = RequestContext(
request,
{'user_list': user_list,},
[ip_address_processor])
return HttpResponse(template.render(context))
任何見解?
**你有沒有運行'./manage.py collectstatic'?** Django的需要都在一個目錄中收集使用測試服務器來爲他們服務的靜態文件。此外,請務必將您的'STATIC_ROOT'設置設置爲絕對可寫的路徑,以便可以有效地收集這些文件。有關更多信息,請參閱[靜態文件的Django文檔](https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/)。另外,請記住,在生產環境中,靜態文件應該由HTTP服務器直接提供。 – pistache 2013-03-20 08:36:35
另外,你的CSS文件在'/ signup/static/signup.css'路徑中被檢索到,而你的'STATIC_URL'是'/ static /'。 **您需要將該路徑設置爲絕對路徑,而不是相對於您的頁面。**請更改爲'href =「/ {{STATIC_URL}} signup.css」',或者使用'{%static'signup.css' %}'由'staticfiles'庫提供的模板標籤(** better **!)。 – pistache 2013-03-20 08:43:04
@pistache(post1),不,我沒有運行過。我只是做了你的建議,沒有解決它。我會在一秒鐘內更新文件結構。 – bhekman 2013-03-20 08:44:10