【发布时间】:2018-05-17 20:43:16
【问题描述】:
我有一个在 laravel 公共文件夹中运行的 angularjs(版本 5)应用程序。
angularjs 应该服务于 ui aka 前端。而 laravel“唯一”路由是后端 api 访问在/api/... 为 ui 服务的数据(库)。
我如何同时结婚?
我的 angularjs 应用程序位于 /public/ui/,所以我目前在 laravel 中只有一条这样的路线:
Route::get('/', function () {
return Redirect::to('/ui/dist');
});
这部分有效。它像预期的那样在 angularjs 应用程序中工作。但是当我调用 anuglarjs 路由时,它们将无法显示,因为它们当然不存在于 laravel 中。
以 angularjs 教程为例:
如果我调用/ui/dist/heroes,它将显示 404 而不是 angularjs 应用程序。
注意:Laravel 公用文件夹符号链接到 webroot。
编辑:
我重定向到/ui/dist,因为我使用angulars 构建器来构建它的文件,这些反映在index.html 也由构建器生成。
index.html 如下所示:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Ui</title>
<base href="./">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link href="styles.5cf98968a6d57e778c48.bundle.css" rel="stylesheet"/><!-- the hash changes on every build -->
</head>
<body>
<app-root></app-root>
<script type="text/javascript" src="inline.2379cc013d19d70a8003.bundle.js"></script> <!-- the hash changes on every build -->
<script type="text/javascript" src="polyfills.ad37cd45a71cb38eee76.bundle.js"></script> <!-- the hash changes on every build -->
<script type="text/javascript" src="main.99c0191843a51dda5d54.bundle.js"></script> <!-- the hash changes on every build -->
</body>
</html>
【问题讨论】:
-
为什么要在 Angular 应用程序中使用 laravel url?我认为您需要在角度配置中将“/ui/dist/heroes”定义为状态。
-
不是根据角度教程,我认为它应该这样工作。但它不会起作用,因为 laravel 路由先于 angulars 路由。我想我只需要在 laravel 中生成一个通配符路由。
标签: angularjs laravel laravel-5 angular-ui-router laravel-5.5