我开始逐步构建我的 Web 应用程序,向路由器添加路由和其他路由。该应用程序不是单页应用程序,因为它提供了相对独立的功能。
例如,如果您必须构建一个包含 wiki、仪表板(和设置)以及使用 wiki 数据的游戏的应用程序,您是否应该只使用一个具有许多路由的路由器?还是应该将应用程序拆分为具有自己的 Controller 的小子应用程序?
在这两种情况下,如何处理i18n的问题?并加载引导模型(在单个路由器的情况下)?
最佳答案
最初,我会说这取决于您的应用程序架构/功能以及您将要做的网站规模......
单个路由文件的优点
但是多路由文件呢?
但是,如果您有不同的插件来处理内容类型(wiki、仪表板、画廊...),并且如果它们自动实现路由(不会从一个网站更改为另一个网站),则您可以找到多个路由文件的合法用法.
在这种情况下,您可以专门为每个插件使用小文件,这些插件将自动合并到应用程序路由文件中(注意:正如我之前提到的,通过这样做,您可能会遇到文件之间的路由冲突)。
在我自制的应用程序中,我使用这个解决方案来处理后端(管理)面板,我“解决”了冲突问题,通过为后端保留“/admin/”路由,然后所有插件的路由都以它为前缀。
PHP 框架 Symfony 示例
不要将以下内容视为“您应该这样做”,但您可以在此处查看 Symfony 中它是如何完成的:http://www.symfony-project.org/book/1_2/09-Links-and-the-Routing-System
# default rules
homepage:
url: /
param: { module: default, action: index }
default_symfony:
url: /symfony/:action/*
param: { module: default }
default_index:
url: /:module
param: { action: index }
default:
url: /:module/:action/*
18n
你愿意翻译网址吗?
如果是,请记住我的简单就是更好的声明。你真的需要吗?我知道它可能会给你一些 SEO 提升,但我认为这不值得挤压。
在这种情况下,您可以为每个应用程序使用每种语言的 1 个文件。
PS:“引导模型(在单个路由器的情况下)”是什么意思?
关于internationalization - 使用多个路由器的优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7046636/