在Django视图中找不到静态文件

在Django视图中找不到静态文件,django,static,views,django-settings,Django,Static,Views,Django Settings,Django 1.5.4上的开发服务器中的静态文件有问题。我不确定在实际的生产服务器(运行Apache)上是否存在同样的问题,因为我找到了一个目前有效的解决方案(只需硬编码完整的URL-我知道这很糟糕,但它完成了任务) 我正在使用Reportlab为我的项目创建一个PDF文件,我需要在其中包含一张图片。我用另一种方式回答: 不幸的是,我从服务器上得到的答案是一个IO错误:“无法打开资源”localhost:8000/static/images/x.jpg“,即使复制并粘贴到URL栏中清楚地显示图

Django 1.5.4上的开发服务器中的静态文件有问题。我不确定在实际的生产服务器(运行Apache)上是否存在同样的问题,因为我找到了一个目前有效的解决方案(只需硬编码完整的URL-我知道这很糟糕,但它完成了任务)

我正在使用Reportlab为我的项目创建一个PDF文件,我需要在其中包含一张图片。我用另一种方式回答:

不幸的是,我从服务器上得到的答案是一个IO错误:“无法打开资源”localhost:8000/static/images/x.jpg“,即使复制并粘贴到URL栏中清楚地显示图片就在那里

我关于静态文件的设置如下所示,它们适用于所有其他内容(CSS、Javascript等):


谢谢你的帮助

确保
django.contrib.staticfiles
包含在您的
安装的应用程序中

通常有两种方法来存储静态文件

  • 一种方法是在应用程序文件夹中创建一个静态文件夹,并将文件存储在那里。您可以检查:
  • 是创建一个文件夹并存储不适用于任何特定应用程序的静态文件
  • 从:

    您的项目可能还具有与特定应用程序无关的静态资产。除了在应用程序中使用静态/目录外,您还可以在设置文件中定义目录列表(STATICFILES\u DIRS),Django也会在其中查找静态文件

    例如:

    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, "static"),
        '/var/www/static/',
    )
    

    如果您正在投入生产,请查看更多详细信息

    正如我所说的,它可以与所有其他静态文件(CSS、Javascript等)完美配合。它们都位于主应用程序的静态文件夹(js/CSS子文件夹)中,没有任何问题。除非我指定确切的地址,否则不会加载此图像。那一定是出了什么事。
    ROOT_PROJECT = os.path.join(os.path.split(__file__)[0], "..")
    STATIC_ROOT = os.path.join(ROOT_PROJECT, 'static')
    STATICFILES_DIRS = ()
    STATICFILES_FINDERS = (
        'django.contrib.staticfiles.finders.FileSystemFinder',
        'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    )
    
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, "static"),
        '/var/www/static/',
    )