如何将Django应用(Heroku)配置为静态作品网站(Dreamhost)的子域名

1 投票
1 回答
790 浏览
提问于 2025-04-18 13:56

我有一个简单的个人作品网站,里面有一些HTML和CSS文件,放在Dreamhost的根目录下。同时,我还有一个Django应用程序,想把它放在这个网站的一个子域名里。不过,Django应用会在Heroku上运行。我对如何组织和配置整个作品网站和Django应用感到困惑。使用两个不同的主机,这个系统应该怎么运作呢?我应该把静态的作品网站整合进Django项目里吗?还是说我应该把它们完全分开,让它们各自运行在自己的服务器上?抱歉,如果我的问题不太清楚,我真的很困惑。

1 个回答

1

在互联网的眼中,子域名就像是一个完全独立的网站。你可以把子域名指向你想要的任何地址;互联网并不在乎它是不是一个完全不同的主机。你可以根据自己的需要来托管你的系统:可以都放在Dreamhost上,也可以都放在Heroku上,或者一个在这儿,一个在那儿。后者的设置最复杂,所以我们这里就来讲讲这个。

假设你的网站是 example.com,而你想让作品集网站是 portfolio.example.com。如果你的应用在Heroku上运行,它的名字可能类似于 yourportfolio.herokuapp.com。所以我们需要做两件事:告诉Heroku你的应用是通过 portfolio.example.com 提供的,并且告诉DNS系统把你的子域名指向Heroku。

将子域名指向Heroku

假设你的域名是在Dreamhost上托管的,首先去控制面板的 Domains 部分,然后点击 Manage Domains。在 example.com 下会有一个叫 DNS 的链接。你需要添加一个自定义的 CNAME 记录;把 name 设置为 portfoliotype 设置为 CNAMEvalue 设置为 yourportfolio.herokuapp.com.CNAME 是一种在网上设置别名的方法;它的意思是“这个网站也叫做 foo”。

告诉Heroku提供你的应用

在你的Heroku项目中,运行 heroku domains:add portfolio.example.com

Heroku有关于子域名的文档,这是一份有用的概述,介绍了这个过程,并提供了更复杂设置的详细信息。

撰写回答