Django и React push rejected, failed to compile on Heroku
Я тщетно пытался развернуть свое приложение Django и React на Heroku. Интеграция Django и React была выполнена, следуя более или менее этому руководству: https://www.fusionbox.com/blog/detail/create-react-app-and-django/624/
Настройка приложения React в settings.py
:
STATIC_URL = '/static/'
REACT_APP_DIR = os.path.join(BASE_DIR, 'frontend')
STATICFILES_DIRS = (
os.path.join(REACT_APP_DIR, 'build',
'static'),
)
STATIC_ROOT = 'static/'
Мой urls.py
:
from django.urls import re_path, path
from backend.views import FrontendAppView
urlpatterns = [
re_path('', FrontendAppView.as_view(), name='home'),
]
Мое мнение:
class FrontendAppView(View):
"""
Serves the compiled frontend entry point (only works if you have run `yarn
run build`).
"""
def get(self, request):
print(os.path.join(settings.REACT_APP_DIR, 'build', 'index.html'))
try:
with open(
os.path.join(settings.REACT_APP_DIR, 'build',
'index.html')) as f:
return HttpResponse(f.read())
except FileNotFoundError:
logging.exception('Production build of app not found')
return HttpResponse(
"""
This URL is only used when you have built the production
version of the app. Visit http://localhost:3000/ instead, or
run `yarn run build` to test the production version.
""",
status=501,
)
Ошибка, с которой я сталкиваюсь. Возможно, ошибка возникает из-за этого FileNotFoundError: [Errno 2] No such file or directory: '/tmp/build_79d83787/frontend/build/static'
.
Если да, то мой вопрос в том, почему она ищет '/tmp/build_79d83787/frontend/build/static'
? Если нет, то в чем тогда проблема.