你如何在开发中从https:// localhost:4200提供ember-cli

时间:2015-01-14 21:17:42

标签: ember.js ember-cli

要使我们的身份验证与我们的ember应用程序一起使用,我们需要从安全网址提供应用程序。我们有一个自签名的ssl证书。

如何设置ember-cli以便为index.html提供https域名。

干杯

3 个答案:

答案 0 :(得分:18)

另见https://stackoverflow.com/a/30574934/1392763

如果您将始终使用SSL,则可以在项目的"ssl": true文件中设置.ember-cli,这将导致ember serve命令默认情况下使用SSL而不必传递命令行每次都会举旗。

默认情况下,ember-cli会在项目根目录中的 ssl 文件夹中查找 server.key server.crt 文件但您也可以使用--ssl-key--ssl-cert选项对其进行自定义,以提供备用路径。

如果您还没有自行签名的SSL证书进行开发,可以按照以下说明轻松生成一个:https://devcenter.heroku.com/articles/ssl-certificate-self

示例 .ember-cli

{
  "disableAnalytics": false,
  // Use SSL for development server by default
  "ssl": true,
  "ssl-key": "path/to/server.key",
  "ssl-cert": "path/to/server.crt"
}

答案 1 :(得分:5)

修改

对于谷歌来说,这已不再适用。使用ember-cli --ssl

Thx to xdumaine 7月12日10:08 ***

强调文字你不能直接来自ember-cli而没有把你的手放在我不推荐的代码中:)

如果你想这样看:node_modules/ember-cli/lib/tasks/server/express-server.js,也可以进入node_modules/ember-cli/lib/tasks/server/livereload-server.js

对于那些仍想通过网络服务器的人:

然而,有其他更清洁的解决方案,例如使用nginx作为(反向)代理:)或直接从/ dist文件夹上的nginx服务:) 使用nginx反向基本示例(没有尝试使用ssl但理论上应该可以工作:p):

server {
   listen 443;
   server_name *.example.com;
   ssl on;
   ssl_certificate /path/to/your/certificate.crt;
   ssl_certificate_key /path/to/your/key.key;
   location / {
      proxy_pass http://localhost:4200;
   }
}

我说nginx,但实际上任何网络服务器都可以正确地做到这一点:)

NaB请勿在生产中使用ember serve

答案 2 :(得分:0)

我将tunnels gem用于pow port-proxying

更新:更多细节

使用真实的网络服务器(如前面的nginx答案)是一个很好的方法,可能更像是你的生产设置。但是,我管理了很多不同的项目,对于管理我所有项目的nginx配置文件并不感兴趣。 Pow可以很容易地在一台开发机器上的端口80上提供许多不同的项目。

Pow有两种主要模式。主要功能是作为Rack应用程序的简单服务器,可通过http://my-application.dev/等自定义本地域访问。这是通过将~/.pow/my-application符号链接到包含机架应用程序的目录来完成的。但是,pow还可以通过创建仅包含端口号的文件(例如echo 4200 > ~/.pow/my-application)将对自定义本地域的请求代理到指定端口。这使得使用实际域在本地开发变得容易(同样,作为旁注,子域也可以工作,这非常方便;例如,foobar.my-application.dev也将路由到my-application)。

Tunnels可让您轻松使用https。

设置

# Install pow
curl get.pow.cx | sh

# Set up pow proxy for your ember app
echo 4200 > ~/.pow/my-application

# Start your ember server
ember serve # specify a port here if you used something else for pow proxy
# Check that http://my-application.dev correctly shows your ember app in the browser

# Install tunnels
gem install tunnels # possibly with sudo depending on your ruby setup

# Start tunnels
sudo tunnels

# Now https://my-application.dev should work