使用多路由器的优点?

Edo*_*ard 6 internationalization backbone.js

我开始逐步构建我的Web应用程序,将路由和其他路由添加到路由器.应用程序不是单页面应用程序,因为它提供了相对独立的功能.

例如,如果你必须构建一个包含wiki,仪表板(和设置)的应用程序,以及使用wiki数据的游戏,你是否应该只使用一个路由多的路由器?或者您应该将应用程序拆分为具有自己的控制器的小型子应用程序?

在这两种情况下,如何处理i18n的问题?并加载自举模型(如果是单个路由器)?

Pro*_*fet 1

最初,我会说这取决于您的应用程序架构/功能以及您要做的网站的规模......

单个路由文件的优点

  • 遵守规则:越简单越好,所以如果您确实不需要多个路由文件,就不要这样做。
  • 多个文件可能会导致冲突问题,而这些问题很难解决。
  • 根据我的个人经验,在开发了一款自制的网络应用程序后,我只在应用程序的目录中保留了一个文件。

但是多个路由文件呢?

但是,如果您有不同的插件来处理内容类型(wiki、仪表板、图库...),并且它们自动实现路由(不会从一个网站更改为另一个网站),那么您可以找到多个路由文件的合法用法。

在这种情况下,您可以专门为每个插件使用小文件,这些插件将自动合并到应用程序路由文件中(注意:正如我之前提到的,通过这样做,您可能会遇到文件之间的路由冲突)。在我的自制应用程序中,我使用此解决方案来处理后端(管理)面板,我通过为后端保留“/admin/”路由来“解决”冲突问题,然后所有插件的路由都以它为前缀。

PHP 框架 Symfony 示例

不要将以下内容视为“您应该这样做”,但您可以在此处查看 Symfony 中的操作方式:http://www.symfony-project.org/book/1_2/09-Links-and-the -路由系统

# 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/*
Run Code Online (Sandbox Code Playgroud)

国际化

你愿意翻译网址吗?如果是的话,请记住我的“越简单越好”的说法。你真的需要它吗?我知道它可能会给你一些搜索引擎优化提升,但我认为这不值得挤压。在这种情况下,您可以为每个应用程序的每种语言使用 1 个文件。

PS:“引导模型(如果是单个路由器)”是什么意思?