【问题标题】:Deploying Angular app to Apache server subdomain将 Angular 应用程序部署到 Apache 服务器子域
【发布时间】:2020-12-19 23:02:09
【问题描述】:

我正在尝试将我的 Angular 9 应用程序部署到子域级别的 Apache 服务器,但我被卡住了。我不知道如何配置我的服务器和/或 .htaccess 文件以使 ngapp.domain.nl 服务于 Angular index.html 文件。

目前采取的步骤:

  • 我使用 ng build --prod 构建了我的 Angular 应用程序,生成了一个分发文件夹 (dist/ngapp/)
  • 我使用主机提供商的控制面板创建了一个名为“ngapp”的子域。这导致创建了一个子域文件夹。此文件夹位于根/子域/ngapp。我将 /ngapp/ 分发文件夹中包含的所有内容都放在了其中。查看文件夹结构图片here
  • 我按照Angular's documentation 中的说明配置了我的.htaccess,并将它与我的分发文件一起放在了我的/ngapp/ 中。请参阅下面的代码。
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

但是,.htaccess 代码并未针对子域进行配置,但我不知道如何更改此代码以使其适合。我也不知道我是否将 .htaccess 文件放在了正确的文件夹中。

另外,我不确定我的 DNS 设置是否符合预期。

子域行为原样

当我访问我的子域 - ngapp.domain.nl - 它会显示一个默认页面(由我的托管服务提供商创建),表明该子域已被占用。它会为我放置在我的域前面的每个子域执行此操作。

任何帮助将不胜感激:)

编辑:添加到images of folder structure的链接

【问题讨论】:

  • 首先,您需要将子域映射到服务器中的文件夹。您应该在创建子域时执行此操作。请检查并确认ngapp.domain.nl 在浏览器中键入ngapp.domain.nl 正确导航到该文件夹​​
  • @JijoCleetus 我该怎么做?这对我来说听起来有点抽象。
  • 您可以从 Cpanel 执行此操作 --> 创建子域 --> 为子域命名并选择现有文件夹或创建新文件夹
  • 是的。这就是我试图描述的。我确实创建了一个这样的子域。它可以在 root/subdomains/ngapp/ 中找到,这是我放置 Angular 分发文件的地方。或者这不是你的意思?
  • @JijoCleetus Omg。我很笨。那最好明天再试。感谢和抱歉给您带来的麻烦。

标签: angular apache .htaccess subdomain


【解决方案1】:

修复:删除了 /ngapp/ 子域文件夹中自动生成的 index.php。

这个 index.php 被加载而不是我的 index.html。 index.php 加载了默认的提供程序页面。其他一切都设置正确。

【讨论】:

    猜你喜欢
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 2020-05-03
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 2020-08-29
    相关资源
    最近更新 更多