【问题标题】:Django: How Add Static FilesDjango:如何添加静态文件
【发布时间】:2011-04-25 06:34:38
【问题描述】:

阅读所有这些主题https://stackoverflow.com/search?q=django.views.static.serve 它没有帮助:(

操作系统:Windows XP 蟒蛇:2.7 Django:1.2.3

媒体
D:\bugtracker\静态

有文件:
docicons-note.gif
样式.css

settings.py 我设置:
MEDIA_ROOT = 'D:/bugtracker/static/'
MEDIA_URL = '/static/'

urls.py 我设置:

urlpatterns = patterns('',
    (r'^media/(?P.*)$', 'django.views.static.serve',{'document_root':'settings.MEDIA_ROOT'}),
)

模板:中不带空格读取)
< !DOCTYPE html> < html lang='ru'>
< head>
< link rel="stylesheet" type="text/css" href="media/style.css" />
< /head>
< body>
< img src="{{MEDIA_URL}}/docicons-note.gif"/>
< /body>
< /html>

【问题讨论】:

    标签: django file static


    【解决方案1】:

    urls.py:

    urlpatterns = patterns('',
        (r'^test_media/(?P<path>.*)$', 'django.views.static.serve',   
            {'document_root':'settings.MEDIA_ROOT'}),
    )
    

    settings.py MEDIA_ROOT = '路径/到/媒体/文件夹/'

    所以如果你有 /test_media/photo.jpg 将使用来自 MEDIA_ROOT 的值: '路径/到/媒体/文件夹/photo.jpg'

    模板文件:

    < !DOCTYPE html> < html lang='ru'>
    < head>
    < link rel="stylesheet" type="text/css" href="/test_media/style.css" />
    < /head>
    < body>
    < img src="/test_media/docicons-note.gif"/>
    < /body>
    < /html> 
    

    这只能用于开发目的。对于生产,您应该使用真正的 Web 服务器。

    【讨论】:

    • 按照你说的做,但服务器说:“/test_media/style.css HTTP 1.1”404 1744。尝试:MEDIA_ROOT = 'D:/bugtracker/media_root/' 和 MEDIA_ROOT = 'D:\ \bugtracker\\media_root\\'
    • 您的照片是否有相同的 404 代码(docicons-note.gif)? css 文件是在 media_root 文件夹中还是在 media_root/css 中?您说媒体文件位于 D:\bugtracker\static 中。那么 MEDIA_ROOT 应该是 MEDIA_ROOT='D:/bugtracker/static'
    • 该 URLs 方法不适用于生产用途,如下所述:docs.djangoproject.com/en/dev/howto/static-files/…
    【解决方案2】:

    你的 settings.py 有:

    MEDIA_URL = '/static/'
    

    但在 urls.py 中,您的静态服务应用程序指向“媒体”。更改 urls.py 中的静态服务条目以匹配 MEDIA_URL 设置:

    urlpatterns = patterns('',
        (r'^static/(?P.*)$', 'django.views.static.serve',{'document_root':'settings.MEDIA_ROOT'}),
    )
    

    希望这对您更有效。

    【讨论】:

      【解决方案3】:

      仅当测试服务器正在运行时,静态服务才通过 Django 完成。如果您使用的是单独的 Web 服务器,那么您需要使用该 Web 服务器的设施来提供静态文件,例如Alias 指令。

      【讨论】:

        猜你喜欢
        • 2020-06-23
        • 1970-01-01
        • 2014-07-31
        • 2019-11-20
        • 2021-01-09
        • 2019-08-31
        • 2014-11-12
        • 2021-04-03
        • 2012-01-21
        相关资源
        最近更新 更多