Django1.3中链接到静态文件的问题

2024-06-01 02:03:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我在WindowsXP上运行django1.3和python2.7

我正在尝试为我的django应用程序在静态文件夹中设置css。在

模板如下所示:

<html>
    <head>
        <title>css demo</title>
        <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/my.css" />

    </head>
    <body>

生成的HTML如下所示:

^{pr2}$

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

所以我现在有了我的.css在c:\root\workspace\mywebapp\src\mywebapp\css\demo\static\css中\我的.css在

在我的设置中,我有:

STATIC_ROOT = 'C:/root/workspace/mywebapp/src/mywebapp/static/'
STATIC_URL = 'http://localhost/static/'

在我的网址.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/

谢谢!在


Tags: tosrclocalhosthttpurldemomystatic
2条回答

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

改变

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

^{pr2}$

那里不需要绝对的网址。在

我创建了一个文件夹:

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

在我的设置中,我有:

^{pr2}$

这似乎有效。在

相关问题 更多 >