【问题标题】:django css file not recognised - wrong configuration?django css 文件无法识别 - 配置错误?
【发布时间】:2011-03-12 07:04:47
【问题描述】:

在我的应用程序中,我想使用一个 css 文件,但模板不“知道”文件在哪里,尽管我已经按照教程中的方式对其进行了配置:

在 urls.py 中(网站根目录下的 urls 文件,不属于应用)

(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': settings.STATIC_DOC_ROOT}),

在模板中

<link href="/site_media/default.css" rel="stylesheet" type="text/css" />

在设置中:

STATIC_DOC_ROOT = '/site_media'

我哪里错了? 谢谢

【问题讨论】:

    标签: css django url templates settings


    【解决方案1】:

    查看django-annoying,这是一个非常有用的应用程序,具有大量方便的装饰器、中间件和功能。如果你像这样添加 StaticServe 中间件,如果 DEBUG = True 没有在 urls.py 中明确设置,Django 将提供静态服务。

    MIDDLEWARE_CLASSES = (
        'annoying.middlewares.StaticServe',
        'django.middleware.common.CommonMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',              
        'django.middleware.doc.XViewMiddleware',               
        'django.contrib.auth.middleware.AuthenticationMiddleware',                    
    )
    

    其次,检查您的MEDIA_URL(在您的情况下是STATIC_DOC_ROOT,但您应该使用MEDIA_URL)和MEDIA_ROOT 路径。 MEDIA_ROOT 应该指向静态目录的绝对路径。这就是我在settings.py 中的做法:

    import os
    
    
    def rel(*x):
        return os.path.join(os.path.abspath(os.path.dirname(__file__)), *x)
    
    # MEDIA_ROOT will point to media directory where settings.py is located
    MEDIA_ROOT = rel('media')
    MEDIA_URL = '/media/'
    

    您可以使用相同的函数来设置templates 目录的路径。

    【讨论】:

    • 我用过这个方法,非常感谢!没有必要安装烦人的中间件,现在没有:D 再次感谢!
    • 当然没有必要,但我真的很喜欢 django-annoying 应用程序,并认为您可能会发现它很有用:)
    【解决方案2】:

    static.servedocument_root 参数需要是文件在服务器文件系统上的位置,而不是 URL。因此,除非您的 css 文件确实位于磁盘上的 /site_media 目录中(这似乎不太可能),否则您需要其他内容为 STATIC_DOC_ROOT

    【讨论】:

    • 虽然我已经读了 3 遍了,但我真的不明白你的意思。我应该将 STATIC_DOC_ROOT 路径更改为磁盘上的绝对路径还是?...
    • 是的,我就是这个意思。
    • 它现在可以工作了,但是我使用了一个 url,导入并使用了 settings.py 中的 'os'。绝对路径太让人头疼了,而且它似乎是硬编码的:D 非常感谢支持!:)
    猜你喜欢
    • 1970-01-01
    • 2023-01-31
    • 2021-01-13
    • 2017-01-04
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2015-01-11
    相关资源
    最近更新 更多