首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁用whitenoise的地方发展我的Django项目?

如何禁用whitenoise的地方发展我的Django项目?
EN

Stack Overflow用户
提问于 2015-08-10 04:09:33
回答 4查看 2.5K关注 0票数 2

我已经使用Heroku Django项目模板在Heroku上设置了一个Django项目。Heroku的模板使用白雪公主来收集位于我的项目根目录上的/静态/目录中的静态文件。

这对我的生产环境很好;每次我将新文件推到服务器上时,Heroku都会运行"manage.py收藏品“。但是,在本地开发时会遇到麻烦:每次更改静态文件(例如css)时,在看到开发服务器上的更改之前,我都必须手动运行"python“。

有没有一种简单的方法可以在我的本地机器上禁用whitenoise,这样我就不必每次看到对本地静态文件的更改时都运行"python manage.py收藏品“吗?

我尝试创建一个单独的"development_settings.py“文件,并删除该文件中对whitenoise的所有引用,但是它不起作用,因为whitenoise仍然在wsgi.py中引用,这会导致错误。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-12-28 14:43:32

正是出于这个原因,WhiteNoise有一个名为WHITENOISE_AUTOREFRESH的设置。

来自WhiteNoise文档

WHITENOISE_AUTOREFRESH:在响应之前,重新检查文件系统以查看是否有任何文件已经更改。这是设计用于开发中,可以方便地获取对静态文件的更改,而无需重新启动服务器。出于性能和安全方面的原因,不应在生产中使用此设置。

它的默认设置是settings.DEBUG的值,因此如果您正在运行开发服务器,默认情况下它应该是打开的。

票数 2
EN

Stack Overflow用户

发布于 2015-08-11 17:16:12

看起来,默认的Heroku模板指定了WhiteNoise的旧版本。如果你跑

代码语言:javascript
复制
pip install --upgrade whitenoise

您应该会发现,在开发过程中(即当settings.DEBUGTrue)时,它会自动获取对静态文件的更改。

票数 1
EN

Stack Overflow用户

发布于 2015-08-10 04:19:56

虽然我没有找到在我的开发服务器上禁用whitenoise的简单方法,但我确实找到了一个方便的解决方法,可以简化整个过程:

在您的.bash_profile文件中添加一个新的命令别名(如果您正在使用虚拟环境进行开发,则添加bin/activate ),该命令别名既运行收藏品,又同时启动服务器:

代码语言:javascript
复制
alias launch='python manage.py collectstatic --noinput; foreman start'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31911496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档