如何部署使用angular cli构建的angular2应用程序
我已经使用angular cli创建了n个新的angular应用程序 我完成了应用程序,并使用ng serve进行了预览,它工作得非常好 在此之后,我使用了ng build--prod,它生成“dist”文件夹。当我将该文件夹放在xampp中运行时,它不工作。我发现没有*.js文件,在*.ts->*.js转换后(我想)应该在那里 我附上了屏幕截图,左边显示的是包含所有.ts文件的src文件夹,中间显示的是“dist”文件夹和浏览器屏幕截图 请指导我如何从angular cli生成完全工作的应用程序,我可以在我的xampp服务器中运行该应用程序 截图: 方法1(流行方法): 如果您使用的是angular cli,则如何部署使用angular cli构建的angular2应用程序,angular,angular-cli,Angular,Angular Cli,我已经使用angular cli创建了n个新的angular应用程序 我完成了应用程序,并使用ng serve进行了预览,它工作得非常好 在此之后,我使用了ng build--prod,它生成“dist”文件夹。当我将该文件夹放在xampp中运行时,它不工作。我发现没有*.js文件,在*.ts->*.js转换后(我想)应该在那里 我附上了屏幕截图,左边显示的是包含所有.ts文件的src文件夹,中间显示的是“dist”文件夹和浏览器屏幕截图 请指导我如何从angular cli生成完全工作的应用程
ng build --prod
我会成功的。然后,您可以将.dist
文件夹中的所有内容复制到服务器文件夹中
方法2:
ng build --base-href /myUrl/
ng build --bh /myUrl/
您可以使用http服务器为您的应用程序提供服务。安装http服务器的步骤
npm install http-server -g
在进入项目文件夹后
http-server ./dist
它将为您文件夹中的所有文件提供服务。您可以检查终端您可以使用什么ip地址和端口来访问应用程序。现在打开浏览器并键入
ip-adress:port/index.html
希望它能帮助你:)
奖金:
如果你想在heroku部署。请仔细阅读本教程
我正在使用Angular CLI的最新版本(在回复时为1.0.0Beta-18)
这个版本的工作方式是将所有内容放在bundle文件中,并在index.html文件中调用它们。之后,您必须将您的资产复制到dist文件夹(由于某些原因,它不会这样做)。最后,仔细检查您的基本href,确保其设置为需要设置的值,然后它就可以工作了。这正是我的工作原理,我已经在Apache和Node上进行了测试。对于任何想要寻找IIS托管解决方案的人 构建您的项目
ng build --prod
将./dist文件夹的所有内容复制到网站的根文件夹中,保持./dist中的文件夹结构(即-不要移动任何内容)。使用angular cli的Beta-18版本,所有资产(在我的例子中是图像)在构建过程中都被复制到./dist/assets,并且在其包含的组件中被正确引用。以下是Heroku的一个示例:
angular cli
dep移动到package.json
中的dependencies
(以便在推送到Heroku时安装它)postinstall
脚本,当代码被推送到Heroku时,该脚本将运行ng build
。还为将在以下步骤中创建的节点服务器添加启动命令。这将把应用程序的静态文件放在服务器上的dist
目录中,然后启动应用程序下面是我做的一个更详细的快速示例,包括如何强制请求使用HTTPS以及如何处理
PathLocationStrategy
:)检查index.html文件并编辑这一行
<base href="/[your-project-folder-name]/dist/">
使用带有
--bh
标志的ng build
在索引中将基本标记href设置为/myUrl/。html:
ng build --base-href /myUrl/
ng build --bh /myUrl/
我目前正在使用Angular CLI 1.0.0-beta.32.3 在项目运行的根目录中 npm安装http服务器-g 成功安装后运行 ng构建--prod 成功构建运行后
http服务器。/dist如果有人在使用Nginx,那么下面是完整的解决方案: 假设您想在主机上部署angular应用程序:
http://example.com
和端口:8080
注意-在您的情况下,主机和端口可能不同
确保index.html头标记中有
ng build--prod--base hrefhttp://example.com:8080
server {
listen 8080;
server_name http://example.com;
root /path/to/your/dist/location;
# eg. root /home/admin/helloWorld/dist
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
# This will allow you to refresh page in your angular app. Which will not give error 404.
}
}
希望这会有帮助。http服务器不支持客户端路由,所以除了基本URL之外,没有其他东西可以工作。相反,您可以使用:
在将应用程序部署到Web服务器上之前,只能在本地对其进行测试。要了解如何在Web服务器上实际部署应用程序,请查看,其中讨论了构建部署时应注意的事项,并提供了生产中常用的各种不同Web服务器的配置。什么版本的angular cli?您使用的是--mobile和angular universal吗?可以,但首先使用angular cli,您必须使用ng build构建您的项目。您可以键入http server./dist-o直接在浏览器中打开应用程序。谢谢,这对我来说很有用,但当我刷新页面时,却找不到错误。我与Saravanan处于同一条船上。我可以从./dist文件夹中运行http服务器,但只有根路径有效。(就我而言)加载应用程序。但是,如果用户有任何路线书签,比如,它抛出一个404。没有明显的重定向功能。所以您也部署了.gz和.map文件?在IIS上,您不必部署.gz文件,只要IIS使用动态压缩,就可以节省大量字节。.map文件是源映射。可以将它们看作javascript世界中的.pdb,所以如果y
ng build --prod --bh /[your-project-folder-name]/dist/
ng build --base-href /myUrl/
ng build --bh /myUrl/
server {
listen 8080;
server_name http://example.com;
root /path/to/your/dist/location;
# eg. root /home/admin/helloWorld/dist
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
# This will allow you to refresh page in your angular app. Which will not give error 404.
}
}
npm install -g angular-http-server
ng build --prod
cd dist
angular-http-server