Mar*_*ine 5 python django static-files
我在Windows XP上运行django 1.3,python 2.7
我正在尝试在我的django应用程序的静态文件夹中设置一个CSS.
模板看起来像:
<html>
<head>
<title>css demo</title>
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/my.css" />
</head>
<body>
Run Code Online (Sandbox Code Playgroud)
生成的HTML如下所示:
<html>
<head>
<title>css demo</title>
<link rel="stylesheet" type="text/css" href="http://localhost/static/css/my.css" />
</head>
...
Run Code Online (Sandbox Code Playgroud)
因此,似乎我已经设置了所有内容,以便指定静态文件在模板中的位置,然后在生成的html中.
但是在' http://localhost/static/css/my.css '中注意到了.我怎么去那里?
我像这样跑了collectstatic:
C:\root\workspace\mywebapp\src\mywebapp>c:\Python27\python.exe manage.py collectstatic
You have requested to collect static files at the destination location as specified in your settings file.
This will overwrite existing files.
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes
Copying 'c:\root\workspace\mywebapp\src\mywebapp\css_demo\static\css\my.css'
1 static file copied to 'C:/root/workspace/mywebapp/src/mywebapp/static/'.
Run Code Online (Sandbox Code Playgroud)
所以我现在在c:\ root\workspace\mywebapp\src\mywebapp\css_demo\static\css\my.css中有my.css
在我的设置中,我有:
STATIC_ROOT = 'C:/root/workspace/mywebapp/src/mywebapp/static/'
STATIC_URL = 'http://localhost/static/'
Run Code Online (Sandbox Code Playgroud)
在我的url.py我有:
from django.conf.urls.defaults import patterns, include, url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = patterns('',
(r'^mywebapp/', include('mywebapp.css_demo.urls')),
)
urlpatterns += staticfiles_urlpatterns()
Run Code Online (Sandbox Code Playgroud)
所以,如果我理解正确,我的css在:
c:\root\workspace\mywebapp\src\mywebapp\css_demo\static\css\my.css
Run Code Online (Sandbox Code Playgroud)
不应该在:
http://localhost/static/css/my.css
Run Code Online (Sandbox Code Playgroud)
但相反,我看到:
Page not found (404)
Request Method: GET
Request URL: http://localhost/static/css/my.css
Using the URLconf defined in mywebapp.urls, Django tried these URL patterns, in this order:
^mywebapp/
The current URL, static/css/my.css, didn't match any of these.
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
http://localhost/mywebapp/static/css/my.css
http://localhost/mywebapp/css_demo/static/css/my.css
Run Code Online (Sandbox Code Playgroud)
我在这里错过了一步吗?关于此的文档有点令人困惑. http://docs.djangoproject.com/en/1.3/howto/static-files/ http://docs.djangoproject.com/en/1.3/ref/contrib/staticfiles/
谢谢!
我打赌你的应用程序在运行http://localhost:8000,而不是http://localhost:)
更改
STATIC_URL = 'http://localhost/static/'
Run Code Online (Sandbox Code Playgroud)
至
STATIC_URL = '/static/'
Run Code Online (Sandbox Code Playgroud)
那里不需要绝对URL.
我创建了一个文件夹:
C:\root\workspace\mysite\src\mysite\common
Run Code Online (Sandbox Code Playgroud)
在我的设置中,我有:
STATIC_ROOT = 'C:/root/workspace/mysite/src/mysite/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
"C:/root/workspace/mysite/src/mysite/common/static",
)
Run Code Online (Sandbox Code Playgroud)
这似乎有效。
| 归档时间: |
|
| 查看次数: |
3800 次 |
| 最近记录: |