【发布时间】:2019-07-25 06:25:29
【问题描述】:
Laravel 文件夹结构
我用 laravel 开发了一个 CMS,我想将它用于多个网站。我的目标是在一个地方进一步开发我的 CMS,并且在旧网站中没有旧的“CMS 代码”。
问题是我不知道如何构建我的 laravel 文件夹结构。 这就是我的想法:
- --cms
- --website-1
- --website-2
- --website-3
每个网站都必须有自己的 - 公共文件夹 - .env 文件(或用于数据库和其他网站特定设置的配置) - 路线 - 资源(视图、资产) - 控制器(的) - 语言文件 - 等等。
开发环境
在开发中,我想使用网站的域(website-1.test)作为指示应该使用哪个网站文件夹。
生产环境和 Git
我使用 forge 来部署我的网站。我的想法是为 CMS 建立一个 git 存储库,为每个网站建立一个 git 存储库。在网站存储库中,我只推送网站文件夹。在 CMS 存储库中保存了整个项目,但所有网站文件夹都是 .gitignored。
所以对于生产服务器,我想到了这个文件夹结构:
- CMS (git repo)
- 网站(git repo)
更新网站前端时,我推送网站仓库,如果我想更新 CMS,我推送 CMS 仓库。
结论
请记住,这是我最初的想法,我知道我的想法可能根本不可能。我正在寻找针对我的情况的意见和建议。如果它可以通过其他方式或更好的方式实现,我很高兴收到这方面的建议。
提前致谢!
【问题讨论】:
-
Laravel 支持域映射,参见laravel.com/docs/5.8/routing#route-group-sub-domain-routing。只需将域指向同一个实例并正确使用您的路由