我有以下问题。
我使用ember-cli创建了一个ember应用程序。
运行命令http://localhost:4200/
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>
我该如何解决这个问题?
谢谢,
大卫
答案 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
这是一个稍微复杂且完全不实用的文件夹结构,但它是如何工作的一个很好的例子,我相信新手会偶然发现完全相同的用例。