django - 使用 create-react-app 自定义静态文件的路径?
问题描述
我已经在 Django-React 应用程序上工作了一段时间,今天终于把它推送到 Heroku。我使用在 DjangoCon-talk 中看到的一种技术从 Django 模板视图中提供我的 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
什么?
如果这是不可能的,还有其他解决方案吗?提示将不胜感激。
解决方案
我通过捕获所有以“静态”开头的路径并将它们重定向到存储桶来解决这个问题。
以下是在我的 urls.py 中使用“静态”重定向路径并将其余部分转过来做出反应。对于其他情况,您可以添加您的 api 地址等:
urlpatterns += [
re_path('^static', redirect_static),
re_path('.*', render_react),
]
以下是redirect_static函数/视图:
def redirect_static(request):
return redirect(f"https://<bucket_address>{request.path}")
推荐阅读
- reactjs - 如何删除出现在 React-Bootstrap 中的列之后的空白?
- c++ - Opencv链接CMAKE不起作用Ubuntu 16.04 Docker
- javascript - 使用 js 更改显示后项目变得混乱
- javascript - 带有输出的批处理文件命令(net user 和 findstr)转换为 javascript
- c# - .NET CLR Perfmon = 与 Windows 服务(名称)相关?
- swiftui - SwiftUI - 单击时 NavigationLink 不起作用
- java - 使用 selenium 网格时更改浏览器缩放级别
- javascript - 获取/设置不是函数?
- reactjs - 让 onMomentumScrollEnd 只听触摸交互 - 而不是 scrollTo 方法
- javascript - 从 ArcGIS WebMap 查找缩放级别