当前位置: 首页 > 面试题库 >

Django无法找到静态文件。需要第二双眼睛,我快要疯了

上官扬
2023-03-14
问题内容

Django不会提供我的静态文件。这是返回的 错误

[13/Jun/2014 06:12:09] "GET /refund/ HTTP/1.1" 200 2927
[13/Jun/2014 06:12:09] "GET /static/css/bootstrap.min.css HTTP/1.1" 404 1667
[13/Jun/2014 06:12:09] "GET /static/css/cover.css HTTP/1.1" 404 1643
[13/Jun/2014 06:12:09] "GET /static/js/bootstrap.min.js HTTP/1.1" 404 1661
[13/Jun/2014 06:12:09] "GET /static/assets/js/docs.min.js HTTP/1.1" 404 1667  
[13/Jun/2014 06:12:09] "GET /static/js/bootstrap.min.js HTTP/1.1" 404 1661
[13/Jun/2014 06:12:09] "GET /static/assets/js/docs.min.js HTTP/1.1" 404 1667

这是我的 base.html中 有关引导的相关部分:

!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="shortcut icon" href="../../assets/ico/favicon.ico">

<title>Cover Template for Bootstrap</title>

<!-- Bootstrap core CSS -->
{
<link href="{% static "css/bootstrap.min.css"%}" rel="stylesheet">

<!-- Custom styles for this template -->
<link href="{% static "css/cover.css" %}" rel="stylesheet">

来自 settings.py的 相关代码(注意:模板工作正常。)

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates'),
)

STATIC_URL = '/static/'

STATIC_ROOT = ''

这是我的django项目的布局方式:

  • administrators
  • db.sqlite3
  • Project name
  • manage.py
  • apply name
  • Static
    • CSS
    • dist
  • 模板
    • base.html

任何帮助将不胜感激。我不知道我可能做错了什么,我已经看了一百万遍代码了,很明显,这在我对Django如何提供静态文件的理解上存在一定差距。但是我以前没有做过这个。


问题答案:

请执行下列操作:

  1. 如果您处于调试状态,请在settings.py中设置STATICFILES_DIRS =(“ path / to / static”)变量。然后,它 应在调试模式下工作。

  2. 如果希望它也可以在部署模式下工作,请在settings.py中设置STATIC_ROOT =(“ path / to / static_root”)变量。然后,执行python manage.py collectstatic,它也应该起作用。

现在,为了更好地了解django如何管理静态文件:

  • Django有一些预定义的位置来查找静态文件并收集它们,您可以在settings.py中使用STATICFILES_FINDERS指定在哪里找到它们。默认情况下,它会 您的应用程序中查找静态文件夹。您可以通过设置STATICFILES_DIRS变量(路径的列表或元组)来告诉Django在其他部分中查找静态文件。

  • 在调试模式下,将从此路径中选择静态文件(而不是从收集文件的static_root中)。

  • 执行时python manage.py collectstatic,Django会遍历可以找到静态文件的所有目录,并将它们放在您的静态根目录中。在部署模式下运行时,将从此目录提供静态文件。

PS:我通常要做的是创建一个名为common的应用程序,并在其中创建一个静态目录,以放置所有通用CSS,js用于我的项目(以及模板)。这样,我不必指定STATICFILES_DIRS变量。

希望现在清楚=)。



 类似资料:
  • 问题内容: 我混淆了STATIC_ROOT和STATICFILES_DIRS 实际上,我并不是很了解STATIC_ROOT的实用程序。我认为这是我必须放置公用文件的目录。该目录用于生产,这是collectstatic将放置(收集)静态文件的目录。 STATICFILES_DIRS是我需要的。 由于我处于开发环境中,因此对我来说,解决方案是不使用STATIC_ROOT(或指定其他路径)并在STATI

  • 问题内容: 在Linux上的“ C”上, 我需要静态库来静态链接,还是需要足够的共享库?如果没有,为什么不呢?(它们不包含相同的数据吗?) 问题答案: 是的,您需要静态库来构建静态链接的可执行文件。 静态库是编译对象的捆绑包。静态链接到库时,实际上与获取该库的编译结果,将它们解压缩到当前项目中以及将它们当作自己的对象使用一样。 动态库已链接。这意味着一些信息,例如重定位,已经被修复并丢弃。 此外,

  • 我有一个控制器操作,它在Firefox本地和生产环境中都能正常工作,在IE本地工作,但在生产环境中不能正常工作。以下是我的控制器操作: 这是我在IE中得到的堆栈跟踪: 错误。处理您的请求时出错。系统。非静态方法需要一个目标。at系统。系统上的reflection . runtimemethodinfo . check consistency(对象目标)。reflection . runtimeme

  • 问题内容: main.go 目录结构: 即使阅读了文档,我仍然无法理解此处的确切功能。 1)如果删除,为什么我无法访问? 2)如果删除该功能,URL将映射到文件夹吗? 问题答案: 将请求的处理转发给您指定为其参数的对象,但在此之前,它会通过剥离指定的前缀来修改请求URL。 因此,例如,在您的情况下,如果浏览器(或HTTP客户端)请求资源: 将会剪切和将修改后的请求转发到由返回的处理程序,因此它将看

  • 问题内容: 我正在本地计算机(Mac OS X)上运行Django的开发服务器(),无法加载CSS文件。 以下是settings.py中的相关条目: 在我的views.py中,我请求上下文: 在我的模板中,渲染正确: 变成: 文件实际所在的位置。我还确保所有文件都已收集。 我的urls.py中也包含以下几行: 我是Django的新手,所以可能缺少一些简单的知识-希望对您有所帮助。 问题答案: 请仔

  • 问题内容: 我正在本地计算机(Mac OS X)上运行Django的开发服务器(),无法加载CSS文件。 以下是settings.py中的相关条目: 在我的views.py中,我正在请求上下文: 在我的模板中,渲染正确: 变成: 文件实际所在的位置。我还确保所有文件都已收集。 我的urls.py中也包含以下几行: 我是Django的新手,所以可能缺少一些简单的知识-希望对您有所帮助。 问题答案: