我试图配置Apache2为后端API(/api/
)提供Django,为客户端JS(/
)提供React应用程序。
我希望根路径加载React应用(例如www.example.com/
)。
我很难过。如果我Alias / Documentroot /
到React的/build
目录,则Apache停止为Django提供服务。相反,当我删除Alias / Documentroot时,Django服务很好,但React没有。我怎么能这样做?
这是我的httpd.conf文件:
```
DocumentRoot /home/ubuntu/project/webapp/build/
Alias / /home/ubuntu/project/webapp/build/
<Directory /home/ubuntu/project/webapp/build>
Require all granted
</Directory>
Alias /static /home/ubuntu/project/webapp/build/static
<Directory /home/ubuntu/project/webapp/build/static>
Require all granted
</Directory>
WSGIDaemonProcess server python-home=/home/ubuntu/python3.5/ python-path=/home/ubuntu/project/server
WSGIProcessGroup server
WSGIScriptAlias /admin /home/ubuntu/project/server/server/wsgi.py
<Directory /home/ubuntu/project/server/server>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
```
答案 0 :(得分:0)
我认为这是另一种方式, 你有没有提到这个? https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-ubuntu-14-04
答案 1 :(得分:0)
我有疑问,你真的想要为后端和后端提供服务吗?前端使用相同的apache实例?或者你将有2个实例/服务用于后端和前端,所以当一个apache httpd服务器关闭时,它不会造成另一个。
答案 2 :(得分:0)
首先,删除DocumentRoot以及指向build
文件夹的第一个Alias and Directory。这些是不需要的。您只需要将别名和目录引导到build内部的静态文件夹。
您还需要确保Django知道在哪里可以找到您的React静态文件。我已经使用这种技术配置了一个应用程序。请参阅我关于这个确切主题here
的帖子