问题标签 [collectstatic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2394 浏览

django - 使用 Heroku 的 Django 部署中缺少静态文件清单条目

我正在尝试将我的 webapp 部署到 heroku。我正在使用 Django,以下是我的大部分 settings.py 文件:

在本地运行时collectstatic,静态文件会被很好地收集并在网页上提供。当我将应用程序部署到 heroku(它会自动collectstatic为我运行命令)时,它会抛出“内部服务器错误(500)”。我遵循了类似 SO 页面上的建议,并通过 heroku 向应用程序添加了一个哨兵,并得到了更清晰的错误消息:

ValueError/nimfks/errorMissing staticfiles manifest entry for...

我尝试更改(和删除)STATICFILES_STORAGE没有成功。删除它让我克服了错误,但尝试显示实际的静态文件(在本例中为图像)不起作用,即它没有加载。

我还尝试更改静态设置以使用PROJECT_ROOT而不是BASE_DIR和许多不同的配置,所有这些都不起作用。

我在这里错过了什么吗?我似乎无法在 SO 上提出的类似问题中找到答案。

编辑

答案

令人尴尬的是,我想保持这一点,因为它可能会帮助其他人在这方面苦苦挣扎。我的问题是我.PNG在我的 html 文件中使用,而不是.png真正的文件扩展名。没有意识到这是区分大小写的。这个问题的真正解决方案本质上只是让一个哨兵运行来捕获这些类型的错误(请参阅哨兵文档)。这是我在 settings.py 文件中的静态设置的最终版本:

0 投票
1 回答
135 浏览

django - 如何获取collectstatic来收集外部App的静态文件

我正在开发一个需要外部文件上传包的项目,这是一个单独的项目。'collectstatic' 不包括该外部包的静态文件。我需要更改外部包还是可以使用我的项目的 settings.py 来包含静态文件?如果我这样做,它会起作用:

但这在部署服务器上不起作用。

0 投票
1 回答
786 浏览

django - Django Collectstatic 可疑文件操作

我正在尝试在heroku上运行collectstatic。当我收到此错误时:

我想也许我错过了一些与 collectstatic 相关的东西,所以我在本地运行它,并得到了完全相同的错误。

然后我就去找了。我发现:

/home/malikarumi/Projects/aishah/jamf35/staticfiles/bootstrap/fonts/glyphicons-halflings-regular.eot

/home/malikarumi/Projects/aishah/jamf35/static/bootstrap/fonts/glyphicons-halflings-regular.eot

我的设置:

STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static/bootstrap/fonts/'),

那里有一张票,但它似乎与路径有关,我认为我的路径没有任何问题,https://code.djangoproject.com/ticket/27201 另一个处理文件,可能更接近我的问题,因为它与创建的 tmp 文件有关,但我真的看不出来: https ://code.djangoproject.com/ticket/26644

我应该注意,我还查看了Django:连接路径位于基本路径组件之外Django:如何允许可疑文件操作/复制文件,以及 Django | 加入的路径位于基本路径组件 {% static img.thumbnail.url %} 之外,带有 whitenoise 的错误 400,但它们似乎更多地是关于 MEDIA ROOT 问题。

我不确定修复是什么,在这里。请指教。谢谢。

0 投票
1 回答
310 浏览

django - python manage.py collectstatic 正在加载错误的(本地)设置

我正在使用 cookiecutter-django .env 设计根据环境加载不同的设置。在本地运行应该使用“local.py”设置并在 aws elatic beanstalk 中运行,它应该加载“dev.py”。两者都从“common.py”导入。

使用开发设置在 AES 中运行服务器有效,但 collectstatic 失败,因为它尝试导入本地设置而不是开发设置。

EC2 实例如何运行 collectstatic 并加载(适当的)dev.py 设置?

0 投票
2 回答
18316 浏览

python - 在服务器上运行 collectstatic:AttributeError:“PosixPath”对象没有属性“startswith”

在使用 nginx、gunicorn、django 和 virtualenv 在数字海洋上的服务器上部署后,我尝试使用 collectstatic:

如您所见,我有多个设置文件。一个基地,一个本地和一个生产设置文件。以下是错误:

我的production.py设置文件包含以下内容:

我的基本目录如下(从基本设置文件导入):

可能是什么原因?

0 投票
1 回答
338 浏览

django - manage.py collectstatic 在 macOS 10.13.1 中不起作用

我在 macOS 中运行 collectstatic 时遇到问题。错误是 OSError: [Errno 45] Operation not supported: '/home/juan'

同一项目中的相同命令在 ubuntu 中运行良好

0 投票
1 回答
497 浏览

django - 在 Django TestCases 中呈现模板时缺少静态文件清单条目

我在运行TestCases 时遇到问题,我在其中渲染页面模板以测试生成的 HTML 片段。

这是我正在运行的测试类型的示例:

测试.py

要求.txt

设置.py

问题在于我添加到base.html文件中以支持使用django-material来重新设计网站的代码。下面,中的三行<head>是直接从django-material文档中复制而来的。

base.html

作为参考,以下是这些文件的链接:

但是,这些行打破了我的测试。我收到这两个错误:

  • WARNING Exception raised while rendering {% include %} ... ValueError: Missing staticfiles manifest entry for 'material/fonts/material-design-icons/material-icons.css'==> 这是 material_css.html 中的第一个调用。
  • ValueError: Missing staticfiles manifest entry for 'material/js/jquery.js' ==> 这是 django-material 文档指定的 base.html 中的第二行。

我对任何其他静态文件都没有这个问题,无论是我创建的那些(我在上面粘贴的精简 base.html 中遗漏了这些文件),甚至看起来是由django-material. 实际上,经过仔细检查,当我删除这三行时,它会在随后对“静态”的调用中中断(为了简单起见,我再次从这个例子中省略了)。

现在,按照这个 StackOverflow question的建议,当我在collectstatic本地运行时,它确实解决了这个问题。但是,当我部署代码并远程运行测试时,我不知道如何在那里collectstatic运行。我尝试将测试的基类更改为StaticLiveServerTestCase,但这并没有什么不同。我还从Nose 文档中看到,我可以在我的测试类中创建一个setUp()例程,但鉴于我在我的代码中的许多测试类中运行这样的测试,我想避免collectstatic多次运行。

有任何想法吗?

谢谢!

0 投票
1 回答
272 浏览

python - heroku 在静态根路径 django 中部署错误。static_root 未设置为文件系统路径

当我尝试部署时,我的静态文件设置根据 heroku 配置不正确。我毫无疑问这是错误的,因为我仍然缺乏对设置静态文件的正确方法的理解。

我已经在我的机器上运行 collect static 并且它确实有效。我将提供我所要求的信息来帮助我解决这个问题。我将继续研究并希望找到解决方案。

这些是我当前的根网址:

0 投票
1 回答
200 浏览

installation - umap collectstatic 给出“没有这样的文件或目录”错误

由于我对 Linux 知之甚少,我所能做的几乎就是从一个好的教程中复制和粘贴内容,并且在大多数情况下只是希望不会出错。我真的尝试过自己寻找解决方案并搜索互联网,但无济于事(我发现了许多非常相似的东西,但没有解决方案我理解到能够自行调整以解决我的问题)。

我已经使用这个惊人的教程安装了一个 osm tile 服务器,它就像一个魅力。现在我想使用本教程安装 umap 。

一切正常,直到我到达“umap collectstatic”这一行。我得到的错误是这样的:

现在,我发现某处的配置文件中的设置可能有问题,但是更改 local.py 中的目录似乎没有任何作用(就像我已将其设置为 STATIC_ROOT = '/home/xxx_myusername_xxx/umap/ var/static') - 我不知道这个“/home/ybon/Code/...”路径是从哪里来的!什么设置?

我确定没有在任何地方指定此路径!在我的机器上确实找不到该文件夹​​。也许使用 virtualenv 会以某种方式生成它,但我无法在我的机器上找到它,因为它是虚拟的(如“实际上并不存在”),但这只是一个非常疯狂的猜测,我真的不知道我是什么我在谈论。

(我尝试在有和没有 sudo 的情况下运行该命令,但它不会改变任何东西)。

0 投票
1 回答
1412 浏览

django - collectstatic 不推送到文件 S3

编辑:

我发现import django_heroku从我的 settings.py 文件中删除允许我将我的静态文件推送到我的 AWS 存储桶。当我取消注释import django_heroku时,collectstatic然后将我的文件推送到该staticfiles文件夹​​。

manage.py collectstatic#import django_heroku

您已请求在设置中指定的目标位置收集静态文件。

maange.py collectstaticimport django_heroku

您已请求在设置中指定的目标位置收集静态文件:/path/to/project/staticfiles

我不知道这是为什么或如何解决它。现在的问题是:如何在 Heroku 上为我的 django 应用程序运行 collectstatic?还是我需要使用 nostatic 运行我的 heroku 实例?(例如runserver --nostatic

问题:

每当我运行时,我python manage.py collectstatic所有的静态文件都会被放入本地的“staticfiles”文件夹中。但是我已经设置STATICFILES_STORAGE = myapp.aws.utils.StaticRootS3Boto3Storage了文件总是转到“myapp/staticfiles”。

设置.py:

myapp/aws/utils.py:

项目结构:

笔记:

  • 更改STATICFILES_STORAGE似乎对输出没有影响
  • python manage.py collectstatic结果是:

    You have requested to collect static files at the destination location as specified in your settings:
    /Users/nickmancini/Development/myapp/staticfiles

  • 我没有收到任何错误消息。所有文件都在本地 staticfiles 文件夹中成功创建。

  • 媒体文件已成功上传到我的 S3 存储桶,但静态文件总是转到 /Users/me/myproject/myapp/staticfiles

  • 根据文档,在设置 STATICFILES_STORAGES 后“您所要做的就是运行 collectstatic,您的静态文件将通过您的存储包推送到 S3”

问题:

  • 我还能提供哪些其他有用的信息?

我咨询过的资源: