簡體   English   中英

使用ng-cli構建的Angular 2應用程序無法部署

[英]Deployment of Angular 2 application built with ng-cli does is not working

我正在使用ng-cli v1.0.0-beta32.3。 我已經在本地測試了該應用程序,並且一切正常。 我已經准備好部署到Web服務器(nginx v1.10.1)。 我已經建立了我的應用程序,如下所示。

ng build -prod

然后,我按如下所示安裝和修改/etc/nginx/nginx.conf。 這是默認配置,但server_nameroot值除外。

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;

    index   index.html index.htm;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  mydomain.io www.mydomain.io;
        root         /data/myapp-www;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

當我嘗試訪問該網站時,收到以下消息。

EXCEPTION: Uncaught (in promise): Error: DI Error
Error: DI Error
    at e.d (http://www.mydomain.io/polyfills.d946e5067bfdbad71862.bundle.js:36:2213)
    at e [as constructor] (http://www.mydomain.io/vendor.92d15c6580f9163ad6fb.bundle.js:470:508)
    at e [as constructor] (http://www.mydomain.io/vendor.92d15c6580f9163ad6fb.bundle.js:926:228)
    at new e (http://www.mydomain.io/vendor.92d15c6580f9163ad6fb.bundle.js:926:555)
    at t._throwOrNull (http://www.mydomain.io/vendor.92d15c6580f9163ad6fb.bundle.js:1247:2766)
    at t._getByKeyDefault (http://www.mydomain.io/vendor.92d15c6580f9163ad6fb.bundle.js:1247:3104)
    at t._getByKey (http://www.mydomain.io/vendor.92d15c6580f9163ad6fb.bundle.js:1247:2485)
    at t.get (http://www.mydomain.io/vendor.92d15c6580f9163ad6fb.bundle.js:1247:848)
    at e.get [as _CookieService_62] (http://www.mydomain.io/main.d6b9261dcd8e4e58fa99.bundle.js:5:23993)
    at e.get [as _PersistenceService_63] (http://www.mydomain.io/main.d6b9261dcd8e4e58fa99.bundle.js:5:24234)
    at e.get [as _mydomainService_64] (http://www.mydomain.io/main.d6b9261dcd8e4e58fa99.bundle.js:5:24488)
    at e.getInternal (http://www.mydomain.io/main.d6b9261dcd8e4e58fa99.bundle.js:5:28132)
    at e.get (http://www.mydomain.io/vendor.92d15c6580f9163ad6fb.bundle.js:668:1102)
    at e.t.injectorGet (http://www.mydomain.io/vendor.92d15c6580f9163ad6fb.bundle.js:113:1750)
    at e.get (http://www.mydomain.io/vendor.92d15c6580f9163ad6fb.bundle.js:1254:350)
t.handleError @ vendor.92d15c6….bundle.js:654
next @ vendor.92d15c6….bundle.js:456
e.object.o @ vendor.92d15c6….bundle.js:661
e.__tryOrUnsub @ vendor.92d15c6….bundle.js:1
e.next @ vendor.92d15c6….bundle.js:1
e._next @ vendor.92d15c6….bundle.js:1
e.next @ vendor.92d15c6….bundle.js:1
e.next @ vendor.92d15c6….bundle.js:8
e.emit @ vendor.92d15c6….bundle.js:661
t.triggerError @ vendor.92d15c6….bundle.js:379
onHandleError @ vendor.92d15c6….bundle.js:379
t.handleError @ polyfills.d946e50….bundle.js:36
n.runGuarded @ polyfills.d946e50….bundle.js:36
r @ polyfills.d946e50….bundle.js:36
i @ polyfills.d946e50….bundle.js:36

我的index.html文件如下所示。

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>My App</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
<link href="styles.4d956e5c8b5af5fd67b3.bundle.css" rel="stylesheet"/></head>
<body>
  <app-root></app-root>
<script type="text/javascript" src="inline.8ba963ff286f59f238cc.bundle.js"></script><script type="text/javascript" src="polyfills.d946e5067bfdbad71862.bundle.js"></script><script type="text/javascript" src="scripts.bb730b805dc244f77e93.bundle.js"></script><script type="text/javascript" src="vendor.92d15c6580f9163ad6fb.bundle.js"></script><script type="text/javascript" src="main.d6b9261dcd8e4e58fa99.bundle.js"></script></body>
</html>

FWIW,我通過從angular2-cookie切換到ng2-cookies解決了這個問題。 我在聲明並從angular2-cookie注入CookieService ,這種依賴性導致了所有麻煩。 當我簡單地刪除此依賴項(並使用ng2-cookies代替來操作cookie)時,此問題就消失了。 我沒有時間更深入地研究問題,但對我來說,我是通過這種方式解決問題的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM