【问题标题】:How to bootstrap Aurelia in laravel 5如何在 laravel 5 中引导 Aurelia
【发布时间】:2016-10-18 04:27:31
【问题描述】:

我想在 Laravel 5 应用程序中使用 Aurelia,但我在引导 Aurelia 时遇到了困难。

我将 Aurelia 安装在 Laravel 的 public/test 文件夹中。然后,将 Aurelia 骨架应用程序附带的默认 index.html 重命名为 index.php。里面的内容是这样的:

<!DOCTYPE html>
<html>
  <head>
    <title>Aurelia</title>
    <link rel="stylesheet" href="<?= URL::asset('test/styles/styles.css'); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
  </head>

  <body aurelia-app>
    <script src="<?= URL::asset('test/jspm_packages/system.js'); ?>"></script>
    <script src="<?= URL::asset('test/config.js'); ?>"></script>
    <script>
      SystemJS.import('aurelia-bootstrapper');
    </script>
  </body>
</html>

但引导无法正常工作,因为它试图从以下位置加载 Aurelia:

http://localhost/cms/public/index.php/jspm_packages/npm/aurelia-bootstrapper@1.0.0-beta.1.1.2.js

请注意,index.php 在 URL 中。这种方式在 url 中也缺少子文件夹 test。这基本上会阻止它加载正确的文件。

如何在 Laravel 中解决这个问题?

【问题讨论】:

  • 为什么不直接使用纯 html/js 做前端,用 laravel 做后端呢?您不需要服务器来呈现应用的静态路径

标签: laravel laravel-5 aurelia


【解决方案1】:

如果您将 laravel 用于 API 后端,将 Aurelia 用于 UI,一个非常简单的方法是使用您的 Web 服务器独立地为两者提供服务。

这是我们在 centos 7 和 nginx 上用于类似设置的工作配置。我相信类似的设置也可以在 ubuntu 上运行。

Laravel 应用驻留在

/user/share/nginx/html/laravel-app/

和 aurelia 应用程序驻留在

/user/share/nginx/html/aurelia-app/

这是我们用来为应用提供服务的 nginx 配置文件

file# /etc/nginx/conf.d/my-app.conf
server {
    listen     80;
    server_name  my-app.com www.my-app.com;

    access_log  /var/log/nginx/myapp-access.log  main;
    error_log  /var/log/nginx/myapp-error.log error;

    root  /usr/share/nginx/html/laravel-app/public;


    charset utf-8;

    location / {
          alias /usr/share/nginx/html/aurelia-app/dist/;
        try_files $uri $uri/ /index.html =404;
    }

    location /api/ {
        try_files $uri $uri/ /index.php?$is_args?$args;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   localhost:9000;
        fastcgi_buffering off;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

【讨论】:

    【解决方案2】:

    Aurelia 和 Laravel 不应该以这种方式混合...您可以使用 Laravel 创建一个 api(或者更好地使用 lumen ),然后构建前端分别通过 Aurelia 调用您的 api。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    猜你喜欢
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 2019-11-02
    • 2017-06-07
    • 2015-06-30
    • 2017-07-09
    相关资源
    最近更新 更多