在服务器上部署angular2的构建

时间:2017-08-30 06:07:34

标签: angular

我有一个使用angular2构建的web应用程序,运行i命令ng build后,在我的文件夹结构中创建了dist文件夹,现在我想在服务器上发布它。

所以我只需复制并粘贴dist文件夹并运行index.html

但它在开发者控制台中显示错误

Cannot match any routes. URL Segment: 'parentFolder/childFolder/dist'

很可能错误在我的基本网址中。

PS:我已将基础href设为<base href="./">

任何想法?

3 个答案:

答案 0 :(得分:0)

您需要复制服务器上dist文件夹的内容,而不是完全复制dist文件夹,并设置基本href <base href="./">

dist文件夹将包含index.html以及assets等所有依赖项。

答案 1 :(得分:0)

HI可以尝试 ng build --dev ,然后执行以下apache配置

<VirtualHost *:80>
    ServerName test.io
    ServerAlias test.io

    DocumentRoot your_project_path/angular2/dist
    <Directory your_project_path/angular2/dist>
            Require all granted

            RewriteEngine on
            RewriteCond %{REQUEST_FILENAME} -s [OR]
            RewriteCond %{REQUEST_FILENAME} -l [OR]
            RewriteCond %{REQUEST_FILENAME} -d
            RewriteRule ^.*$ - [NC,L]

            RewriteRule ^(.*) /index.html [NC,L]
    </Directory>
 </VirtualHost>

答案 2 :(得分:-1)

用这个脚本替换基本标签

<script>
    document.write('<base href="' +String(document.location).replace('index.html','') + '">')
</script>