使用 create-react-app 自定义静态文件路径?
custom paths to static files with create-react-app?
我一直在开发 Django-React 应用程序有一段时间了,今天终于将它推送到 Heroku。我使用了在 DjangoCon-talk 中看到的一种技术,从 Django 模板视图为我的 SPA 提供服务。我手动构建 react-app,然后定位 index.html
。我还使用 AWS S3 来存储我的静态文件,这就是我卡住的地方。
当我推送到 Heroku 时,collectstatic
会将我的静态文件添加到 AWS。但是,我访问这些静态文件的唯一方法是,如果我推送应用程序,从 AWS 复制静态 url,将它们粘贴到我的 index.html
中的 stylesheet/script-tags,然后再次推送。
在 运行 npm run build
时有没有办法动态创建这些?
类似于 https://my-bucket.s3.amazonaws.com/static/js/{my_js_file}.chunk.js
?
如果这是不可能的,是否有其他解决方案?提示将不胜感激。
我通过捕获所有以“静态”开头的路径并将它们重定向到存储桶来解决这个问题。
以下在我的urls.py中用“static”重定向路径,把剩下的交给react。对于其他情况,您可以添加 api 地址等:
urlpatterns += [
re_path('^static', redirect_static),
re_path('.*', render_react),
]
下面是redirect_static function/view:
def redirect_static(request):
return redirect(f"https://<bucket_address>{request.path}")
我一直在开发 Django-React 应用程序有一段时间了,今天终于将它推送到 Heroku。我使用了在 DjangoCon-talk 中看到的一种技术,从 Django 模板视图为我的 SPA 提供服务。我手动构建 react-app,然后定位 index.html
。我还使用 AWS S3 来存储我的静态文件,这就是我卡住的地方。
当我推送到 Heroku 时,collectstatic
会将我的静态文件添加到 AWS。但是,我访问这些静态文件的唯一方法是,如果我推送应用程序,从 AWS 复制静态 url,将它们粘贴到我的 index.html
中的 stylesheet/script-tags,然后再次推送。
在 运行 npm run build
时有没有办法动态创建这些?
类似于 https://my-bucket.s3.amazonaws.com/static/js/{my_js_file}.chunk.js
?
如果这是不可能的,是否有其他解决方案?提示将不胜感激。
我通过捕获所有以“静态”开头的路径并将它们重定向到存储桶来解决这个问题。
以下在我的urls.py中用“static”重定向路径,把剩下的交给react。对于其他情况,您可以添加 api 地址等:
urlpatterns += [
re_path('^static', redirect_static),
re_path('.*', render_react),
]
下面是redirect_static function/view:
def redirect_static(request):
return redirect(f"https://<bucket_address>{request.path}")