Apache反向代理未向客户端呈现Angular构建的JavaScript

时间:2019-12-24 10:10:11

标签: angularjs apache apache2 devops

我正在尝试为我的2个站点实现反向代理,但是其中两个站点未呈现html。

以下是我的apache ssl config的配置文件

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin webmaster@localhost
                ServerName xxxx.xxxx.org

                DocumentRoot /var/www/html
                ProxyPreserveHost off
                SSLProxyEngine On
                SSLProxyVerify none
                SSLProxyCheckPeerCN off
                SSLProxyCheckPeerName off
                SSLProxyCheckPeerExpire off
                <Proxy *>
                        Order deny,allow
                        Allow from all
                </Proxy>
                <Location />
                        ProxyPass https://localhost:3000/
                        ProxyPassReverse https://localhost:3000/
                </Location>
                <Location /app1>

                        ProxyPass  http://localhost:4200/
                        ProxyPassReverse  http://localhost:4200/

                </Location>

                # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
                # error, crit, alert, emerg.
                # It is also possible to configure the loglevel for particular
                # modules, e.g.
                #LogLevel info ssl:warn

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                # For most configuration files from conf-available/, which are
                # enabled or disabled at a global level, it is possible to
                # include a line for only one particular virtual host. For example the
                # following line enables the CGI configuration for this host only
                # after it has been globally disabled with "a2disconf".
                #Include conf-available/serve-cgi-bin.conf

                #   SSL Engine Switch:
                #   Enable/Disable SSL for this virtual host.
                SSLEngine on

                #   A self-signed (snakeoil) certificate can be created by installing
                #   the ssl-cert package. See
                #   /usr/share/doc/apache2/README.Debian.gz for more info.
                #   If both key and certificate are stored in the same file, only the
                #   SSLCertificateFile directive is needed.
                SSLCertificateFile      /etc/apache2/sites-available/ssl-certificate/xxxxxccc.crt
                SSLCertificateKeyFile  /etc/apache2/sites-available/ssl-certificate/xxxx.xxxx.org.key
                SSLCertificateChainFile /etc/apache2/sites-available/ssl-certificate/sf_bundle-g2-g1.crt

现在,我尝试使用https://xxx.fghjk.org/app1访问服务器,但显示空白页。我观察到该页面无法加载由角度应用程序构建的Java脚本文件。

有任何建议

1 个答案:

答案 0 :(得分:0)

您面临的问题很可能是由于angular使用了从index.html中检索js和css文件的引用。因此,在像您这样的设置中,有必要在<base>中设置index.html标签。

在您的情况下,必须为<base href="/app1">

有关更多详细信息或替代方法,请参见https://angular.io/guide/deployment,以了解如何正确设置基本网址。