【发布时间】: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