【问题标题】:Marionette empty route taking over server responseMarionette 空路由接管服务器响应
【发布时间】:2015-04-03 08:15:47
【问题描述】:

我有以下几点:

@App.module "LocationGridApp", (LocationGridApp, App, Backbone, Marionette, $, _) ->
  API =
    showLocationGrid: ()->
      LocationGridApp.Show.Controller.showLocationGrid(2)

  class LocationGridApp.Router extends Marionette.AppRouter
    appRoutes:
      "" : "showLocationGrid"
    controller: API

  App.on 'before:start', ->
    new LocationGridApp.Router

当我访问<url> 时,showLocationGrid 按预期启动。当我访问<url>/companies 时,showLocationGrid 仍在触发。我期待<url>/companies 由我的服务器处理。空路线是否在做我没想到的事情?

main_app.js.coffee

@App = do(Backbone, Marionette) ->
  Arc = new Marionette.Application

  Arc.addRegions
    container: "#container"

  Arc.on "start", ->
    if Backbone.history
      Backbone.history.start(pushState: false)
  Arc

【问题讨论】:

    标签: backbone.js coffeescript marionette


    【解决方案1】:

    取决于您的服务器根据路由提供不同的文件:如果您对<url><url>/companies 得到相同的结果,则说明您的服务器使用相同的静态文件进行响应。您的客户端代码中的任何内容都不能接管您的服务器端路由。您可能应该检查您的服务器路由设置。

    【讨论】:

    • 服务器在/companies 路由上发送不同的htlm 文件,它恰好包含与主干运行相同的js 文件。即使是相同的内容,难道showLocaitonGrid不应该因为路由不匹配而被解雇吗?
    • 我想知道如果Backbone路由器没有将root设置为/companies,那么/companies将匹配规则''
    • 我不确定我是否完全理解您在说什么,但任何路线/resources/home 等都会触发该功能。我只是选择了/companies作为例子
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2023-04-04
    相关资源
    最近更新 更多