django静态文件奇怪的行为

发布于 2024-11-30 07:00:33 字数 884 浏览 1 评论 0原文

在我的 settings.py 中我有:

import os
SITE_ROOT = os.path.realpath(os.path.dirname(__file__))
# ... #
STATIC_ROOT = os.path.join(SITE_ROOT, 'static')
# ... #
STATIC_URL = '/static/'

在我的 urls.py 中我有:

urlpatterns = patterns('',
url(r'^', include('myapp.urls')),
url(r'^admin/', include(admin.site.urls)),
)

if settings.DEBUG:
urlpatterns += patterns('',
    url(r'^static/(?P<path>.*)', 'django.views.static.serve', {
        'document_root': settings.STATIC_ROOT,
    }),

)

在我的模板中:

<img src="{{ STATIC_URL }}images/myimage.png">

哪个不起作用。奇怪的是,如果我将 settings.py:

STATIC_URL = 'static/'

和模板更改为:

<img src="/{{ STATIC_URL }}images/myimage.png">

确实有效!我一直在兜圈子来解决这个问题,并且我查看了很多论坛帖子,但我似乎无法弄清楚我做错了什么。

in my settings.py I have:

import os
SITE_ROOT = os.path.realpath(os.path.dirname(__file__))
# ... #
STATIC_ROOT = os.path.join(SITE_ROOT, 'static')
# ... #
STATIC_URL = '/static/'

in my urls.py I have:

urlpatterns = patterns('',
url(r'^', include('myapp.urls')),
url(r'^admin/', include(admin.site.urls)),
)

if settings.DEBUG:
urlpatterns += patterns('',
    url(r'^static/(?P<path>.*)', 'django.views.static.serve', {
        'document_root': settings.STATIC_ROOT,
    }),

)

and in my template:

<img src="{{ STATIC_URL }}images/myimage.png">

Which doesn't work. The weird thing is that if I change my settings.py:

STATIC_URL = 'static/'

and my template to:

<img src="/{{ STATIC_URL }}images/myimage.png">

does work!! I have been chasing round in circle to fix this, and I have looked at lots of forum posts, but I can't seem to figure out what I'm doing wrong.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鸩远一方 2024-12-07 07:00:33

如果您使用 staticfiles 应用程序,则不需要这个(假设您使用的是 Django 1.3):

if settings.DEBUG:
    urlpatterns += patterns('',
        url(r'^static/(?P<path>.*)', 'django.views.static.serve', {
            'document_root': settings.STATIC_ROOT,
    })

它由应用程序自动处理。尝试删除并看看会发生什么。

if you use staticfiles app you don't need this (assuming you are using Django 1.3):

if settings.DEBUG:
    urlpatterns += patterns('',
        url(r'^static/(?P<path>.*)', 'django.views.static.serve', {
            'document_root': settings.STATIC_ROOT,
    })

Its handled by the app automatically. Try to remove and see what happens.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文