我正在使用后端的Nette框架创建一个应用程序,对于前端,我想使用一个构建在角2框架上的应用程序。
所以在我的解决方案中,我需要从后端的Nette向用户发送基于角度2的应用程序。如何使用Nette来提供这个应用程序?
发布于 2017-01-22 15:19:02
让我们假设在访问您的页面(例如- myapp.com)之后,请求就会转到主页演示者。
路由
如果您还没有,请在您的RouterFactory中设置这个路由(通常在/app/RouterFactory.php中)
$router[] = new Route('/', 'Homepage:default');主页演示者
/app/演讲人/HomepagePresenter.php
<?php
namespace App\Presenters;
use Nette;
use Latte\Engine;
use Nette\Bridges\ApplicationLatte\Template;
class HomepagePresenter extends BasePresenter {
public function renderDefault() {
$this->setView('angular2App');
}
}在访问此默认()操作后,我们需要呈现一个模板,其中包含角2应用程序。
Angular2应用程序
与我们的模板angular2App.latte,也需要返回角2的东西。通常,如果您编译得很好,最多包含4个文件。
要进行编译,请使用Gulp或Grunt,它可以翻译、编译、编译uglifyies,并最终将所有的角2文件连接到3或4(就像在生产中一样)。
编译了角2应用程序的最终目录看起来是这样的。
/dist
├───src
│ └───app.min.js
├───styles
│ ├───app.css
│ └───vendor.css
└───index.html这是我们的模板需要返回的内容。将/dist文件夹放到Nette中的公共/www文件夹中,也可以将其重命名为/myapp-/www
这一切以后都可以自动完成。
模板
/app/演示者/模板/@layout.latte
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<base href="/" />
<title>myapp.com</title>
{block styles}{/block}
<script>window.module = 'aot';</script>
</head>
<body>
<div class="page">
<app>For full functionality of this app, please enable Javascript in your browser.</app>
</div>
{block scripts}{/block}
</body>
</html>/app/presenters/templates/Homepage/angular2App.latte
{block styles}
<link href="/myapp-frontend/styles/vendor.css" rel="stylesheet" />
<link href="/myapp-frontend/styles/app.css" rel="stylesheet" />
{/block}
{block scripts}
<script src="/myapp-frontend/src/app.min.js" async defer></script>
{/block}让角2代替Nette来做路由。
https://stackoverflow.com/questions/41792637
复制相似问题