站点目录
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。