【问题标题】:Why does changing my "STATIC_URL" setting alter whether my Django application works?为什么更改我的“STATIC_URL”设置会改变我的 Django 应用程序是否正常工作?
【发布时间】:2012-05-25 16:21:19
【问题描述】:

在settings.py中,如果我指定STATIC_URL = 'http://68.164.125.221/',那么客户端可以访问我的网页。但是,不会加载 CSS 和其他静态文件。

另一方面,如果我指定STATIC_URL = '/',则访问我的应用程序的主页会产生此错误。

Page not found (404)
Request Method: GET
Request URL:    http://68.164.125.221/
Directory indexes are not allowed here.
You're seeing this error because you have DEBUG = True in your Django settings file.

有趣的是,我的静态文件现在加载(例如 http://68.164.125.221/main.css 加载),尽管我的应用程序的主页显示此错误。

为什么更改我的“STATIC_URL”设置会切换是加载主页还是加载静态文件?我正在使用静态文件应用程序。

【问题讨论】:

    标签: django django-staticfiles


    【解决方案1】:

    你可能想要STATIC_URL = '/static/'[1];当您将其设置为 / 时,Django 会尝试将 /blah/ 作为静态文件提供服务,而不是将其推送到您的 Django 应用程序。

    您遇到的实际错误 Directory indexes are not allowed here. 是指未列出静态文件夹这一事实 - 您必须访问特定文件才能提供该文件。

    [1] 或 /media/,或 /files/,或其他任何...只是不是 '/'。

    【讨论】:

    • 谢谢,指定STATIC_URL = '/static/' 有效。尽管 Django 试图将 '/blah/' 作为静态文件提供,但你是什么意思?你的意思是我所有的 URL 映射都被视为静态文件?
    • 是的,通过设置STATIC_URL='/' Django 将忽略您的 URL 映射并尝试将所有内容作为静态文件提供。 (假设您使用的是内置开发服务器)
    猜你喜欢
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 2013-07-15
    • 1970-01-01
    相关资源
    最近更新 更多