【问题标题】:Django/React - Static Main.js file with AWS hosting staticfilesDjango/React - 带有 AWS 托管静态文件的静态 Main.js 文件
【发布时间】:2020-02-11 18:32:31
【问题描述】:

我正在创建一个以 Django 作为后端并以 React 作为前端的应用程序。我已经构建了后端,现在我正在尝试构建 React 组件。

我的问题是——现在我的静态文件托管在 AWS 上。所以每次我对组件进行更改时,我都需要通过 django 运行 collectstatic,以便我的 Django 模板读取更新后的 Main.js 文件。

以前有人遇到过这个问题吗?我是 React 新手,所以我可能缺少一个非常简单的解决方案。

谢谢!!

【问题讨论】:

    标签: python django reactjs amazon-web-services


    【解决方案1】:

    这是必需品。

    相反,我建议您仅在测试后才推送到 AWS,并且需要更改才能生效。

    【讨论】:

    • 谢谢@annshress,您对我在开发过程中如何最好地预览更改有什么建议吗?
    • @mg2019 您可以简单地使用本地服务器。或者,您也可以在开发 AWS 服务器中设置基于 git 的 CI/CD。
    【解决方案2】:

    据我了解,您的前端(React 应用程序和组件)与后端(您的 django 应用程序)的耦合度似乎太高了。我建议您将您的 react 应用程序作为独立应用程序运行,您可以在本地开发并立即对您所做的更改做出反应(如果您使用 create-react-app 设置您的应用程序,此热重载将立即可用)。然后,如果您希望与后端通信,则应使用 http(通常为 JSON),或者,如果您有媒体或其他文件,则应通过文件存储系统(如 AWS S3)进行。这样,您无需在每次更改前端内容时都收集 django 应用程序文件。

    但是,如果您必须让您的前端从您的main.js 出来,您仍然可以通过让您的 django 开发服务器为您的静态文件提供更快的重新加载。如果您已经设置了设置变量STATICFILES_STORAGE,您可以使用变量DEBUG(通常在生产中设置为False)检查您是处于开发模式还是生产模式,例如:

    if not DEBUG:
        STATICFILES_STORAGE = '<insert-your-staticfiles-backend-here>'
    

    【讨论】:

      猜你喜欢
      • 2011-08-06
      • 2012-01-30
      • 2021-10-28
      • 2017-07-18
      • 1970-01-01
      • 2012-04-15
      • 2015-07-08
      • 2011-11-28
      • 2015-08-16
      相关资源
      最近更新 更多