我开发 Django-React 应用程序已经有一段时间了,今天终于把它推送到了 Heroku。我使用了在 DjangoCon-talk 中看到的一种技术,从 Django 模板 View 为我的 SPA 提供服务。我手动构建react-app,然后定位index.html
。我还使用 AWS S3 来存储我的静态文件,这就是我遇到的问题。
当我推送到 Heroku 时,collectstatic
会将我的静态文件添加到 AWS。但是,我访问这些静态文件的唯一方法是推送应用程序,从 AWS 复制静态 URL,将它们粘贴到我的 index.html
中的样式表/脚本标签中,然后推送再次。
有没有办法在运行npm run build
时动态创建这些?
类似https://my-bucket.s3.amazonaws.com/static/js/{my_js_file}.chunk.js
?
如果这是不可能的,是否还有其他解决方案?提示将不胜感激。
最佳答案
我通过捕获所有以“static”开头的路径并将它们重定向到存储桶来解决这个问题。
以下内容在我的 urls.py 中,用于使用“static”重定向路径,并将其余部分翻过来进行 react 。对于其他情况,您可以添加您的 api 地址等:
urlpatterns += [
re_path('^static', redirect_static),
re_path('.*', render_react),
]
以下是redirect_static函数/ View :
def redirect_static(request):
return redirect(f"https://<bucket_address>{request.path}")
关于django - 使用 create-react-app 自定义静态文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63020877/