【发布时间】:2018-09-09 20:59:54
【问题描述】:
我使用 angular 5 创建了一个单页应用程序。我将此应用程序与 laravel 后端一起使用。在 laravel 项目中,我有一个 angular 文件夹,该文件夹存储所有 angular 文件。我在 angular 文件夹之外构建了 angular 应用程序,位于根 laravel 项目文件夹的公共文件夹中。我设置了 web.php 文件,所以如果我去 homestead.test url,index.html 将从公共文件夹加载。在使用stories universal rendering 设置服务器端渲染后,我构建了客户端应用程序和服务器包。在我这样做之后,在浏览器中访问 homestead.test,我看到我的应用程序看起来不像以前了。使用正常的 ng 构建(顺便说一下,我是匈牙利人,所以我使用了匈牙利语): 在我完成了 universan 渲染构建(ng build --prod --extract-css,ng build --prod --extract-css --app 1 --output-hashing=false ,我使用了 --extract-css,因为我在 angular 中使用了 scss,当我不使用它时,我收到了很多警告): 当我查看页面源时,它看起来像原始的角度源,但在快速服务器中,源显示的是真实内容。 所以我的问题是如何设置 laravel 来充当快递服务器? ng build --prod --extract-css 创建了很多js文件,assets文件夹和其他一些文件,但是ng build只创建了一部分,没有assets文件夹。那么如何在 laravel 中导入所有 assets 文件夹和 js 文件呢?故事通用渲染也从 Node server.ts 创建了一个 server.js 文件。我不知道这个文件在 laravel 中是必需的。
我还有一些令人上瘾的问题: 将 laravel 连接到 Angular 应用程序的最佳方式是什么?如果是,我可以使用真正的虚拟主机托管它吗? 有没有免费的虚拟主机来测试我的应用程序? 如果我像使用 express 服务器一样在 laravel 中成功显示 angular 应用程序,那么在任何 url 中刷新页面都可以吗?因为现在我收到一条错误消息。
我将此应用程序创建为我大学的论文应用程序,并且我在网络上没有主机应用程序,我只使用本地主机。
【问题讨论】:
-
当然需要server.js。您需要在服务器端运行 JS 应用程序。 PHP 无法运行 JS。所以你需要 Node.js+Express 来运行服务器端的 Angular。如果你的后端由 PHP+Laravel 提供支持,你需要将所有相关请求代理到该服务器。据我所知,PHP 桥已经计划好了,但还没有准备好,所以你自己在这里。
-
如果您想了解 Angular 的服务器端渲染,您可以通过此链接获得帮助 - blog.squareboat.com/…
标签: angular laravel angular5 server-side-rendering angular-universal