白噪声不添加随机字符串

Posted

技术标签:

【中文标题】白噪声不添加随机字符串【英文标题】:whitenoise not adding random string 【发布时间】:2018-12-09 15:48:37 【问题描述】:

我刚刚将我的 Django 应用程序的另一个副本投入生产。我的“旧”应用程序和“新”应用程序之间的唯一区别是旧应用程序在“传统”Heroku 中运行,而新应用程序在“Dockerized”Heroku 中运行。

最奇怪的事情正在发生。我使用 Whitenoise 来服务我的静态资产。在旧版应用中,指向我的静态资产的链接在生成的页面中如下所示:

<link href="/static/assets/css/bootstrap.min.9f236e18d5bf.css" rel="stylesheet">

但是在我的新应用中,那个小字符串 (9f236e18d5bf) 不见了。它看起来像:

<link href="/static/assets/css/bootstrap.min.css" rel="stylesheet">

因此,我的新网站上没有任何样式表。

我必须在 Dockerized 版本中采取额外的步骤才能使其正常工作吗?还是我缺少一些所需的 STATIC* 设置值组合。

我的临时解决方法是将python manage.py collectstatic --noinput添加到Dockerfile.web,然后设置:

STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage' 

这可行,但我想知道我是否会在周一遇到扩展问题。

【问题讨论】:

【参考方案1】:

看起来答案分为两部分,而我在不同的时间分别工作了一个。

    确保在 Dockerfile.web 中有这个:

    RUN python manage.py collectstatic --noinput CMD CMD gunicorn --bind 0.0.0.0:8000 <project-name>.wsgi

请注意,您希望将RUN 用于您的collectstatic 命令。显然,只有 Dockerfile 中的 last CMD 值才有意义。

    settings.py,有

    STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

该设置将导致collectstatic 将哈希添加到复制到 STATICFILES_ROOT 中指定的目录中的每个文件的名称中。

【讨论】:

以上是关于白噪声不添加随机字符串的主要内容,如果未能解决你的问题,请参考以下文章

图形学中的噪声入门

matlab 产生白噪声

数字信号处理相关函数应用 ( 高斯白噪声 的 自相关函数 分析 )

给图像添加椒盐噪声后用均值滤波和中值滤波过滤椒盐噪声的C++-OpenCV代码

matlab 生成噪声信号

Matlab中randrandnrandirands的区别以及用randn生成白噪声的示例