问题是,我说使用Python编写了一个后端REST服务,然后其他人在Angular JS中编写了一些前端代码。典型的工作流程是将它们分成两个单独的文件夹并单独运行吗?所以这个过程将如下所示
python manage.py runserver
在Python更冷,然后可能
# in the angular2 folder
npm start
或者我应该将所有JS代码放入某个资源文件夹中,当我启动服务器时,所有JS代码都会自动运行吗?如果是这样,我该怎么做?
另一个相关问题是,什么时候将所有JS代码发送给用户的浏览器?如果应用程序是客户端呈现应用程序,那么在服务器首次请求时是否将代码发送到浏览器?服务器如何知道它应该打包你的JS代码并发送它?
答案 0 :(得分:2)
Q)问题是,我说使用Python编写了一个后端REST服务,然后其他人在Angular JS中编写了一些前端代码。典型的工作流程是将它们分成两个单独的文件夹并单独运行吗?
Angular和Python都可以以不同的方式运行。 您可以选择将Angular文件(有资格用于所有实际目的作为公共文件)放在公共(或相关文件夹)中,具体取决于您使用的是哪个框架--Django,Flask,Web2py等。
您还可以选择将它们作为独立应用程序独立运行。
取决于您的要求。老实说,有很多方法可以回答这个问题。
Q)或者我应该将所有JS代码放入某个资源文件夹中,当我启动服务器时,所有JS代码都会自动运行吗?如果是这样,我应该怎么做? 如果您将所有内容放在资源文件夹中,那么只要主页路由或任何其他路由请求[来自浏览器],公用文件夹就会传递给浏览器。 虽然我不确定是否是服务器端渲染的情况。 如果您正在使用Angular 1,我认为它不适合服务器端渲染,尽管您可以使用一些库。
Q)另一个相关的问题是,什么时候将JS代码发送到用户的浏览器?如果应用程序是客户端呈现应用程序,那么在服务器首次请求时是否将代码发送到浏览器?服务器如何知道应该打包JS代码并发送它? 浏览器可以访问服务器上PUBLIC文件夹中的所有文件。
你所有的问题似乎基本上都是问同一个问题。
答案 1 :(得分:0)
解决这个问题的方法很多。
如果基础架构管理对您来说很困难,那么将它们放在同一台服务器上会更容易。您可以创建另一个目录,并使用您的JavaScript代码将提供给浏览器的html放置。
如果你有一个好的管道(我认为它自己付出代价),而不是另一台为你的应用程序提供服务的服务器更好。您可以在不影响服务的情况下执行更多操作,例如缓存等。运行服务的服务器也不会忙于提供资产。
我有一个案例,我们运行一个节点服务器,它为我们的用户提供html和javascript,因为这样我们就可以进行服务器端渲染。enter link description here
代码执行流将是这样的:一旦用户的浏览器点击服务于html和资产的服务器,它将在本地下载它,它将从JavaScript执行(解析,编译和执行)开始。您的JavaScript应用程序可能会在初始化时执行某些API调用,也可能不会执行,但只有在前端发出请求时才会执行您的服务。
对于CORS而言,与您提供服务无关,因为您可以将它们始终保持在同一个域中。