6

我在 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>

生成的 HTML 如下所示:

<html> 
    <head> 
        <title>css demo</title> 
        <link rel="stylesheet" type="text/css" href="http://localhost/static/css/my.css" /> 

    </head>
...

所以看起来我已经设置好了所有东西,以便指定静态文件在模板中的位置,然后在生成的 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/'.

所以我现在在 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/'

在我的 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()

因此,如果我理解正确,我的 css 位于:

c:\root\workspace\mywebapp\src\mywebapp\css_demo\static\css\my.css

不应该在:

http://localhost/static/css/my.css

但相反,我看到:

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.

我也试过:

http://localhost/mywebapp/static/css/my.css
http://localhost/mywebapp/css_demo/static/css/my.css

我在这里错过了一步吗?这方面的文档有点混乱。 http://docs.djangoproject.com/en/1.3/howto/static-files/ http://docs.djangoproject.com/en/1.3/ref/contrib/staticfiles/

谢谢!

4

2 回答 2

5

我打赌你的应用程序在运行http://localhost:8000,而不是http://localhost:)

改变

STATIC_URL = 'http://localhost/static/'

STATIC_URL = '/static/'

那里不需要绝对 URL。

于 2011-05-20T15:15:49.050 回答
2

我创建了一个文件夹:

C:\root\workspace\mysite\src\mysite\common

在我的设置中,我有:

STATIC_ROOT = 'C:/root/workspace/mysite/src/mysite/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    "C:/root/workspace/mysite/src/mysite/common/static",
)

这似乎有效。

于 2011-05-23T14:21:56.000 回答