如何在apache服务器中部署ember-cli项目

时间:2014-07-16 13:25:29

标签: ember.js ember-cli

我有以下问题。

我使用ember-cli创建了一个ember应用程序。

运行命令http://localhost:4200/

时,应用程序可以通过URL ember serve在nodejs上正常工作

我想在apache httpd服务器上部署此应用程序。

为了使这个工作起作用,我认为在firefox中打开时它也应该是独立的。

当我在firefox中打开它时出现错误:

  

要求未定义

生成的index.html是

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Foo</title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1 user-scalable=no">

    <base href="/" />

    <link rel="stylesheet" href="assets/vendor.css">
    <link rel="stylesheet" href="assets/foo.css">
  </head>
  <body>
    <script>
      window.FooENV = {"environment":"development","baseURL":"/","locationType":"auto","EmberENV":{"FEATURES":{}},"APP":{"LOG_RESOLVER":true,"LOG_ACTIVE_GENERATION":true,"LOG_MODULE_RESOLVER":true,"LOG_VIEW_LOOKUPS":true},"LOG_MODULE_RESOLVER":true};
      window.EmberENV = window.FooENV.EmberENV;
    </script>
    <script src="assets/vendor.js"></script>
    <script src="assets/foo.js"></script>
    <script>
      window.Foo = require('foo/app')['default'].create(FooENV.APP);
    </script>
  </body>
</html>

我该如何解决这个问题?

谢谢,

大卫

2 个答案:

答案 0 :(得分:5)

file:///J:/assets/ndd.css

这让我觉得你只需双击你的dist文件夹中的index.html文件。这不起作用!

您必须通过http服务器为您的目录提供服务。

使用npm:

安装一个简单的http服务器
npm install -g http-server

移至您的dist文件夹并运行http-server。您将看到如下消息:

Starting up http-server, serving ./ on port: 8080

现在,您可以在Firefox中检查您的ember应用:http://localhost:8080

答案 1 :(得分:5)

为了在apache中正确部署Ember CLI应用程序,您必须执行以下操作。

我们假设您要使用XAMPP。您可能要在htdocs中创建一个文件夹并将其命名为myapp。在ember new appname内运行myapp命令时,CLI生成整个项目并将其放在appname文件夹中。

现在,当您在ember build时构建项目时,应用程序的整个编译版本将位于:myapp\appname\dist

由于Ember CLI使用base中的index.html元标记,您需要修改baseUrl中的 myapp\appname\config\environment.js 变量,并设置它到myapp/appname/dist/。重建和应用将通过访问 localhost/myapp/appname/dist

来工作

这是一个稍微复杂且完全不实用的文件夹结构,但它是如何工作的一个很好的例子,我相信新手会偶然发现完全相同的用例。