【问题标题】:django - 404 not found error when loading static filesdjango - 加载静态文件时找不到 404 错误
【发布时间】:2011-07-26 21:30:01
【问题描述】:

我多次阅读https://docs.djangoproject.com/en/dev/howto/static-files/ 我正在拔头发。我无法加载我的 .js 和 .css 文件。 Chrome调试器保持 给我一个 .js 和 .css 文件的“404 not found”。这是调试器中的内容:

http://127.0.0.1:8000/meetingapp/static/css/jquery-ui-1.8.14.custom.css 404 (NOT FOUND)

这就是我在 base.html 模板中调用 css 文件的方式:

<link type="text/css" href="{{ STATIC_URL }}css/jquery-ui-1.8.14.custom.css" rel="stylesheet" />

我正在运行开发者服务器:

python manage.py runserver

settings.py

STATIC_URL = 'static/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles'
)

urls.py

urlpatterns = patterns('meetingapp.views',
(r'^meetingapp/$', 'index'),
(r'^meetingapp/calc_meetings/$', 'calc_meetings')
)

请帮助我。谢谢。

【问题讨论】:

  • 它会帮助其他阅读本文的人指定 Django 版本吗?我猜是 1.3?
  • 我遇到了同样的问题,直到我在我的 apache 配置中为 /static before WSGI* 指令添加了别名。在我的情况下不会更改文件的映射,但 确实 更改了优先级以使 apache 在移交给 Django 之前查看静态文件夹。

标签: python django


【解决方案1】:
http://127.0.0.1:8000/meetingapp/static/css/jquery-ui-1.8.14.custom.css 404 (NOT FOUND)
                      ^^^^^^^^^^^ Your problem is right here...

您会看到 static 通常位于项目的根目录中,它会尝试在您的应用根目录中查找。 你需要像这样改变你的主要 settings.py STATIC FILES 设置:

STATIC_URL = '/static/'
             ^ add a slash here

所以你的静态网址将是:

http://127.0.0.1:8000/static/css/jquery-ui-1.8.14.custom.css

【讨论】:

    【解决方案2】:

    我刚刚想通了:我必须在 settings.py 中向 STATICFILES_DIRS 添加一条记录

    STATICFILES_DIRS = (
    "/Projects/MeetingOrganization/meetings/meetingapp/static",
    )
    

    还是谢谢:)

    【讨论】:

    • 这是错误的解决方案。如果这对你有用,那是因为你短路了一些你不应该做的其他事情。这里的其他建议是正确的-尽管我怀疑您的问题是由其他原因引起的。我目前正在为 1.42 解决同样的问题,我花了大约 30 分钟尝试您的建议,直到我明白这是完全错误的。
    • 我认为这里的问题是,如果答案有效,那么它不是错误的答案。最糟糕的答案是根本没有答案。
    • 这实际上是正确的。通常,STATICFILES_DIRS 在部署期间被注释掉。不过,不评论这部分似乎对 localhost 很有用。
    【解决方案3】:

    您的 STATIC_URL 需要以斜杠开头。

    【讨论】:

    • Daniel,感谢您的回答,但如果我使用 STATIC_URL='/static/' 没有区别。
    【解决方案4】:

    我花了一整天的时间来解决我的项目中的同样问题。

    问题在于 Windows 寄存器 (regedit) 中的非 ASCII 键 HKEY_CLASSES_ROOT\MIME\Database\Content Type 找出非 ASCII 键(如 šßü)并删除它们。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-30
      • 2019-01-12
      • 2021-11-25
      • 2019-12-06
      • 1970-01-01
      • 2016-04-08
      • 2018-05-24
      相关资源
      最近更新 更多