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

Django Static Files结果为404

公宜春
2023-03-14
问题内容

我已经检查了很多其他线程,因为它们无法使用Django中的静态文件应用程序提供静态内容,但尚未找到解决方案

settings.py

STATIC_ROOT = '/opt/django/webtools/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    "/home/html/static",
)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

模板

相关行…

<img src="{{ STATIC_URL }}macmonster/img/macmonster-logo-blue.png" >

日志

从日志看来,路径是正确的,但可惜它仍然会产生404。

[10/Feb/2013 16:19:50] "GET /static/macmonster/img/macmonster-logo-blue.png HTTP/1.1" 404 1817
[10/Feb/2013 16:19:51] "GET /static/macmonster/img/macmonster-logo-blue.png HTTP/1.1" 404 1817

问题答案:

对于本地提供的静态文件, 如果您尚未 设置任何形式的静态文件收集并且运行的是Django
1.3+,我相信这是您引用settings.py静态文件时应采用的方式

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = ''

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
 '/Users/cupcake/Documents/Workspaces/myDjangoProject/someOtherFolderPerhapsIfYouWant/static',
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

注意,我在STATIC_ROOT这里省略了。这是因为“现在”我不需要静态文件收集。

收集静态文件是为了缓解(拼写)为多个不同的staticfiles文件夹提供服务时遇到的问题,因此他们合并了staticfiles通常用于解决此问题的应用程序。它所做的工作(在文档中进行了描述)是从所有应用程序中提取所有静态文件,并将它们放在一(1)个文件夹中,以便在将应用程序投入生产时更容易提供。

因此,您的问题是您已经“错过了”这一步骤,这就是为什么尝试访问它们时得到404的原因。 因此,您需要使用静态文件的绝对路径,
即。在Mac或UNIX系统上,它应该看起来像这样:

'/Users/cupcake/Documents/Workspaces/myDjangoProject/someOtherFolderPerhapsIfYouWant/static',

另外,您可以简化和“修复”具有像我用于说明的硬编码路径的需求,并这样做

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))

STATICFILES_DIRS = (
    PROJECT_ROOT + '/static/'
)

我希望我把它弄清楚一些,否则,如果我错了,请纠正我^ _ ^!

有关在较新版本的Django中收集以及如何管理静态文件的信息,请阅读此链接
staticfiles应用



 类似资料:
  • 问题内容: 目前,我正在编写一个应用程序(使用TargetiOS6,已启用ARC),该应用程序使用JSON进行数据传输,并使用CoreData进行持久存储。JSON数据是通过PHP脚本通过json_encode从MySQL数据库生成的。 我的问题是,对于某些表中的数据,以下代码将失败: 程序始终在显示self.jsonSerializationResult的行上崩溃并显示EXC_BAD_ACCES

  • 我们有以下内容:

  • 我正在制作一个php注册脚本,注册工作正常,所有内容都已成功输入数据库,激活电子邮件工作正常,但每当我使用mysqli查询来选择或更新信息时,它都不起作用。 例如,当我使用我知道数据库中存在的帐户登录时,它告诉我用户名不存在,当单击电子邮件中的激活链接时,查询无法以相同的方式更新数据库。 我相信这是一个非常简单的错误,我忽略了我的新手,但我找了几个小时后找不到合适的答案。我真的不确定问题出在哪里。

  • 我正在使用Pycharm并试图将文本打印到控制台 最终打印命令('

  • 这在99%的情况下都有效,但有时会导致,留下以下StackTrace: 我尝试实现一个重试策略,使用和使用手动执行递归方法调用,以便给出重新建立连接的时间。 有时连接在10秒后恢复,有时在60秒后恢复,通常永远不会恢复(或者直到我对方法的递归调用击中,大约30分钟后,但取决于线程进入Hibernate状态的时间)。从逻辑上讲,我不能拥有我系统中这个不稳定的部分。 有人知道为什么会出现这个异常吗?如

  • 我在Thymeleaf中编写了一个表单,从用户那里获取数据。看起来是这样的: 问题是,每当我提交此表单时,它都不会保存到mongo数据库,甚至不会显示结果页面。相反,它抛出了404。我注意到这个错误来自url: http://localhost:8080/addArticle 这很奇怪,因为我试图重定向到我调用return.html的页面(它存在于正确的目录中,我已经测试了html是否有效)。这是