你如何在开发中从 https://localhost:4200 服务 ember-cli
How do you serve ember-cli from https://localhost:4200 in development
为了让我们的身份验证与我们的 ember 应用程序一起工作,我们需要从安全的 url 为该应用程序提供服务。我们有一个自签名的 ssl 证书。
如何设置 ember-cli 以服务 index.html 形成 https
域。
干杯
编辑
对于谷歌员工来说,这不再是事实。使用 ember-cli --ssl
感谢 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
我用的是tunnels gem with 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 使 pow 与 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
另见 。
如果您将始终使用 SSL,您可以在项目的 .ember-cli
文件中设置 "ssl": true
,这将导致 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"
}
为了让我们的身份验证与我们的 ember 应用程序一起工作,我们需要从安全的 url 为该应用程序提供服务。我们有一个自签名的 ssl 证书。
如何设置 ember-cli 以服务 index.html 形成 https
域。
干杯
编辑
对于谷歌员工来说,这不再是事实。使用 ember-cli --ssl
感谢 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
我用的是tunnels gem with 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 使 pow 与 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
另见 。
如果您将始终使用 SSL,您可以在项目的 .ember-cli
文件中设置 "ssl": true
,这将导致 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"
}