【问题标题】:Angular 5 deployment with Apache2使用 Apache2 部署 Angular 5
【发布时间】:2019-01-08 22:45:57
【问题描述】:

我正在处理一个前端有角度的项目。将其部署到服务器时遇到问题。该项目是使用 jenkins 部署的,项目文件夹 angProject1 部署在 /var/www/html/dms 文件夹中。 /etc/apache2/sites-available/dmsproxy.conf 文件有

ServerName dms.xxxxxx.com
DocumentRoot /var/www/html/dms/angProject1

我已将 .htaccess 文件添加到 /var/www/html/dms/angProject1:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

并且 /etc/apache2/sites-enabled/000-default.conf 包含:

<Directory "/var/www/html/dms">
  AllowOverride All
</Directory>

我可以访问 dms.xxxxxx.com 页面,但是当我尝试访问 dms.xxxxxx.com/opendms 等时,它不起作用(错误:未找到请求的 url)。也尝试将 # 添加为 dms.xxxxxx.com/#/opendms,但它会重定向到 dms.xxxxxx.com 文件。

index.html 中的基本 href 是 &lt;base href="./"&gt;

感谢您的帮助!

【问题讨论】:

    标签: jenkins apache2 angular5


    【解决方案1】:

    我解决了这个问题。改变了

    <Directory "/var/www/html/dms">
      AllowOverride All
    </Directory>
    

    在 /etc/apache2/apache2.conf 中,现在应用程序正在读取 .htaccess 文件。我的 .htaccess 也更改为:

    RewriteEngine On  
    # If an existing asset or directory is requested go to it as it is
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
    RewriteRule ^ - [L]
    
    # If the requested resource doesn't exist, use index.html
    RewriteRule ^ /index.html
    

    将基本 href 更改为 &lt;base href = "angProject1"/&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-27
      相关资源
      最近更新 更多