【发布时间】:2014-10-14 01:53:49
【问题描述】:
我一直在尝试将我的 ember-cli 应用程序以生产模式部署到 nginx 服务器上。我已经查看了 ember-cli 文档并查看了其他类似的问题,例如 (How do I deploy Ember.js app developed with ember-cli on github pages?) - 这些似乎表明在 /app/config/environment.js 中设置 ENV.baseURL 变量应该可以解决问题,但我可以'找不到适合我的值。
ember build --environment production生成的文件在/Users/gordon/src/app/dist
nginx 配置如下所示:
server {
listen 4200 ssl;
server_name localhost;
ssl_certificate /Users/gordon/src/app/server.crt;
ssl_certificate_key /Users/gordon/src/app/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /Users/gordon/src/app/dist/;
location / {
# index index.html;
try_files $uri $uri/ /index.html?/$request_uri;
}
}
在 Users/gordon/src/app/config/environment.js 中,如果我将 ENV.baseURL 保留为默认值,则会在浏览器控制台中显示以下错误...
Uncaught TypeError: undefined is not a function vendor-70567c507a348c9884b7aba3ccaae1fd.js:14
Uncaught ReferenceError: DS is not defined
...如果我将其设置为 /Users/gordon/src/app/、/Users/gordon/src/app/dist/ 或 /Users/gordon/src/app/dist 我得到
Uncaught SyntaxError: Unexpected token < :4200/Users/gordon/src/sellthru/dist/assets/vendor-70567c507a348c9884b7aba3ccaae1fd.js:1
Uncaught SyntaxError: Unexpected token < :4200/Users/gordon/src/sellthru/dist/assets/sellthru-app-4b7e6077c7df38b31e70e32056d7d7aa.js:1
Uncaught ReferenceError: require is not defined
我确定我可能遗漏了一些简单的东西,但我一生都无法弄清楚...如果有人能够让我摆脱痛苦,我将不胜感激;-)
【问题讨论】:
-
ember --version的输出是什么?您能否将开发版本部署到您的 nginx 服务器? -
@oliver 版本输出如下,是的,我能够毫无问题地部署开发版本版本:0.0.40 节点:0.10.30 npm:1.4.21
-
这很奇怪...我会说将 ENV.baseURL 保留为默认的 '/' 因为 nginx 为您的 dist 目录提供了 '/' 服务。
DS is not defined看起来您在其中一个模型中忘记了import DS from 'ember-data'。但是这个错误也应该发生在开发版本中。 -
嗯 - 我检查了我的模型,它们都导入了 DS。也许还有其他地方我应该导入它?