一个包含多种语言网站的代码库
Posted
技术标签:
【中文标题】一个包含多种语言网站的代码库【英文标题】:One Codebase with Web Sites of Multiple Languages 【发布时间】:2019-05-07 10:09:52 【问题描述】:我被分配了一个项目来演示一个包含多个网站的代码库。对任何一个托管域的请求将首先通过主项目目录,该目录会将控制权传递给由域名标识的网站。
文件结构将包括主项目目录中每个网站的子文件夹(可能以域名命名)。这些网站中的每一个都将使用以下语言编写:ASP.NET/ASP.NET Core、Angular 或 React;每个都包含自己的路由机制。
这些是我希望解决的主要挑战:
-
主要项目目录将基本上存在,以将请求路由到相应子文件夹中的相应网站。有没有我可以使用的语言/技术来实现这一点? (它需要将路由控制传递给网站,这可以用前面提到的任何一种技术编写。)
浏览器中的域名需要保持不变,尽管网站位于项目主目录的子文件夹中。
代码库一开始可能只有三到十个网站,但我们的想法是创建一个代码库来容纳所有这些项目,并具有可扩展性以便以后添加更多站点。
这可能吗?
【问题讨论】:
如果子站点的内部路由可以通过诸如“开关”之类的东西来管理,您可以使用 WebComponents。如果需要在搜索栏中管理路线,则需要使用 IFrame。我的 repo 中有部分示例:github.com/gilsdav/angular-micro-frontend-sample/branches 看看这个:npmjs.com/package/meta-spa-router 我下载了你的 angular-micro-frontend-sample 代码。在您的示例中,看起来“路由”组件维护 iframe 中网站的路由控制。那是对的吗?我也很好奇地址栏是否可以简单地反映每个站点主页的域名,或者它是否需要看起来像 http://localhost:4200/#one/home 才能正常工作。 不幸的是,我认为meta-spa-router
使用标签。它的机制是父监听子事件,子监听父事件。我还测试了元素和根应用程序之间的路由管理,但我认为 Angular Elements 不适用于路由。我认为您可能需要在“路由器”、“iframe-router”分支和“meta-spa-router”实现之间进行合并,因为每个分支都有一些有用的机制。
我不确定这些选项是否能提供项目原始设计的确切功能,但我很欣赏这些想法,为项目提供不同的方法。
【参考方案1】:
更新:已确定各种网站将在自己的代码库中开发,因为一个代码库的好处并没有超过拥有一个维护所有网站的路由控制的主“路由器”的限制。
【讨论】:
以上是关于一个包含多种语言网站的代码库的主要内容,如果未能解决你的问题,请参考以下文章
适合Java语言新手入门练习的框架个人网站项目,目前主要维护网络mysql和网络psql两个分支。前台包括博客、代码库、文件下载、留言、登录注册、站内搜索、分类目录等功能,后台包括上传文件、博客、代码