【问题标题】:Static files not updating on prod静态文件未在产品上更新
【发布时间】:2019-03-25 20:04:47
【问题描述】:

我对生产的东西不熟悉。我在数字海洋上部署了我的第一个 Django 应用程序。它正在工作。

代码更新正常,但问题在于通过 nginx 提供的静态文件。

我更新了静态文件并重新启动了 nginx 和 gunicorn,但它们没有出现在我的产品网站中。

我检查了 chrome 开发工具,它正在提供旧的静态文件。

我检查了这些更改是否存在于 prod 存储库中,但不知何故 nginx 似乎没有使用最新的静态文件。我采取的步骤

      Run collectstatic command
      Restart the nginx
      Restart the gunicorn

静态文件的 nginx 配置

   location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
    root /home/djangoadmin/pyapps/hkc_project;
}

这是静态设置:

   STATIC_ROOT = os.path.join(BASE_DIR, 'static')

   STATIC_URL = '/static/'

   STATICFILES_DIRS = [
     os.path.join(BASE_DIR, 'hkc/static')
    ]

我还需要做些什么才能使其正常工作吗?

提前致谢

【问题讨论】:

  • 你能说明你的 STATIC_URL 和 STATIC_ROOT 是如何定义的吗?
  • @JuanMiGabarron 是的,当然。
  • 你完成python manage.py collectstatic了吗?尝试使用开发工具清除缓存?

标签: django nginx production-environment


【解决方案1】:

据我所知,使用 nginx 提供静态文件的最佳方式是:

    location /static {    
        autoindex on;    
        alias /home/djangoadmin/pyapps/hkc_project;    
    }

alias 是为整个目录提供服务的正确方法。

autoindex 处理以斜杠字符 ('/') 结尾的请求并生成目录列表。

【讨论】:

  • 感谢您的回答。这似乎是浏览器上的缓存问题。多次刷新后解决了这个问题。但我一定会研究你提到的这种方法。
猜你喜欢
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 2021-06-16
  • 2023-01-29
  • 1970-01-01
  • 2016-01-08
  • 1970-01-01
相关资源
最近更新 更多