Django API和前端分离问题

时间:2017-08-10 16:07:18

标签: python django angular apache django-rest-framework

我开始为后端学习Django Rest Framework并使用Angular 4作为前端。我读过有些人通过GIT将两者分开来实现可伸缩性和团队分离等等,所以我想我会遵循这个想法,并尝试将两个单独的目录分开。

我已经在Apache的Centos7盒子上安装了Django。 (网络服务器在我的家庭网络上,并通过我的家用路由器进行端口转发)Django文件位于一个目录中,我的Angular文件位于一个单独的目录中。

服务器上还有很多其他项目,所以我没有在root上运行Django。一个示例网址是http://0.0.0.0/project1我还有http://0.0.0.0/project2等等......这个Django项目是http://0.0.0.0/myproject/api我可以访问并运行得很好。但是,当我将前端代码放在前端目录(http://0.0.0.0/myproject/front_end)并尝试访问它时,我得到一个Django 404错误。 (我有debug = True)

我的目标是让我的api访问http://0.0.0.0/myproject/api/example,并使用http://0.0.0.0/myproject访问前端。我可能不得不使用虚拟主机来实现这一点,但我不确定。

我无法弄清楚为什么当我的Django项目位于不同的文件夹中时会出现404?如何从front_end目录运行我的Angular 4项目?

目录结构

/var/www/html/myproject
├── api
│   ├── core (Django files)
│   ├── etc... 
└── front_end
    ├── app (Angular 4 files)
    ├── etc...

Urls.py

router = DefaultRouter()
router.register(r'movie', views.MovieViewSet, 'movie')

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^api/', include(router.urls)),
    url(r'^api/login', obtain_jwt_token),
    url(r'^api/refresh/token/', refresh_jwt_token),
    url(r'^api/verify/token/', verify_jwt_token),
] 

的httpd.conf

我不确定这是否会有所帮助,但也许这里的问题导致了这个问题:

Alias /static /var/www/html/myproject/api/core/static/

<Directory /var/www/html/myproject/api/core/static/>
    Require all granted
</Directory>

<Directory /var/www/html/myproject/api/core/>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

WSGIDaemonProcess myproject python-path=/var/www/html/myproject/api/
WSGIProcessGroup myproject
WSGIScriptAlias /myproject /var/www/html/myproject/api/core/wsgi.py

注意,我对Django很新,所以我不确定哪些代码对发布有帮助。让我知道我应该发布什么,我将编辑我的帖子。

0 个答案:

没有答案