站点

站点目录

Frappe 是一个多租户平台,每个租户被称为一个站点。站点存在于
名为 sites 的目录中,在运行 frappe 命令或其他服务(如 Celery worker 或 WSGI 服务器)时,该目录被视为当前工作目录。

您可以通过环境变量 SITES_DIR 设置 sites_dir,或者向 frappe 命令传递
--sites_dir 选项。

除了站点之外,sites_dir 还应包含以下内容。

apps.txt

apps.txt 包含一个 Python 包列表,这些包将被视为 Frappe 应用。您打算在站点中使用的每个
frappe 应用都应在此文件中有一条记录。
此外,这些应用还应位于 PYTHONPATH 中。有关更多信息,请参阅
Frappe 应用。

common_site_config.json

common_site_config.json 是一个可选文件。所有站点通用的配置
可以放在此文件中。

assets

assets 包含需要提供给浏览器客户端使用的文件。
这些文件通常包括 *.js、*.css、*.png 文件。此目录是使用
bench build 命令自动生成的。

languages.txt

languages.txt 是一个自动生成的文件,它将每种语言映射到其对应的代码。

站点

站点是 sites_dir 中的一个目录,代表 Frappe 平台中的一个租户。

目录结构

site
├── locks
├── private
│   └── backups
├── public
│   └── files
│ └── testfile.txt
└── site_config.json

  • locks 目录由调度器使用,通过
    文件锁机制来同步各种任务。

  • private 目录包含需要认证才能访问的文件。
    目前,该目录仅限于备份文件。

  • public 目录包含可以直接提供的文件。在上述
    示例中,testfile.txt 可以通过 URL 访问,
    http://site/files/testfile.txt

  • site_config.json 包含站点特定的配置

站点配置

请参阅 site_config.json 的配置选项

站点解析

在响应 HTTP 请求时,系统会根据以下条件自动选择一个站点:

  • HTTP 请求中的 Host 头与某个站点匹配
  • HTTP 请求中的 X-Frappe-Site-Name 头与某个站点匹配

也可以通过以下命令启动开发服务器,强制其提供特定站点:
bench --site SITENAME serve

添加新站点

要添加新站点,请在您的 bench 实例中执行以下命令:

bench new-site SITENAME

将站点设置为当前站点

要强制将某个站点用作默认站点,请执行以下操作:

bench use SITENAME

为确保设置成功,请检查 currentsite.txt 的内容(位于 bench 实例的 sites 文件夹中),其中应包含 SITENAME。