0

我有一个骨干木偶应用程序路由问题让我发疯。我为我拥有的每个模块设置 Marionette.AppRouter 。只要 url 只有一个组件,路由就可以正常工作。当我们有了第二个“目录”甚至是 :id 时,我在浏览器中得到了 index.html 中包含的每个文件的语法错误。包括 index.html 本身。

例如 myapp/articles 工作正常。myapp/articles/78 给了我这些问题。我什至测试了在路由器中创建两个 appRoutes...“article”和“article/something”。我可以去http://myapp或者http://myapp/article但是http://myapp.article/something给出语法并且从不处理任何东西。

下面我的 article_app.js 显示了试图让 article/:id 工作.. 但每次都失败,并在下面发布错误

azBest.module("ArticleApp",function(ArticleApp, azBest, Backbone, Marionette, $, _) {

ArticleApp.Router = Marionette.AppRouter.extend({
    appRoutes: {
        "article": "returnToResultsPage",
        "article/:id": "test"
    },
});

var API = {

    test: function(id) {
        console.log("testing...id:" + id);
        azBest.trigger("storefront:show");
    },
    returnToResultsPage: function() {
        azBest.trigger("storefront:show");
    }
};

azBest.on("article:show", function(model) {
    Backbone.history.navigate("article/"+model.get("articleid"));
    azBest.ArticleApp.Show.Controller.showArticle(model);
});

azBest.addInitializer(function(){
    new ArticleApp.Router({
        controller: API
    });
});

});


从 Firefox 的控制台捕获。

SyntaxError:语法错误

78(第 276 行) SyntaxError:语法错误

json2.js(第 1 行) SyntaxError:语法错误

unders....min.js(第 1 行) SyntaxError:语法错误

backbo ....min.js(第 1 行) SyntaxError:语法错误

marion....min.js(第 1 行) SyntaxError:语法错误

spin.min.js(第 1 行) SyntaxError:语法错误

spin.jquery.js(第 1 行) SyntaxError:语法错误

jquery...-min.js(第 1 行)SyntaxError:语法错误

app.js(第 1 行)SyntaxError:语法错误

storefront_app.js(第 1 行) SyntaxError:语法错误

results_app.js(第 1 行) SyntaxError:语法错误

article_app.js(第 1 行) SyntaxError:语法错误

views.js(第 1 行) SyntaxError:语法错误

featuresItems.js(第 1 行)SyntaxError:语法错误

popularItems.js(第 1 行)SyntaxError:语法错误

ads.js(第 1 行)SyntaxError:语法错误

article.js(第 1 行)SyntaxError:语法错误

list_view.js(第 1 行) SyntaxError:语法错误

list_c...ller.js(第 1 行) SyntaxError: 语法错误

show_view.js(第 1 行) SyntaxError:语法错误

show_c...ller.js(第 1 行) SyntaxError:语法错误

show_view.js(第 1 行) SyntaxError:语法错误

show_c...ller.js(第 1 行) SyntaxError:语法错误

show_view.js(第 1 行) SyntaxError:语法错误

show_c...ller.js(第 1 行) SyntaxError:语法错误

show_view.js(第 1 行) SyntaxError:语法错误

show_c...ller.js(第 1 行) SyntaxError:语法错误

list_view.js(第 1 行) SyntaxError:语法错误

list_c...ller.js(第 1 行) SyntaxError: 语法错误

show_view.js(第 1 行) SyntaxError:语法错误

show_c...ller.js(第 1 行)ReferenceError: azBest 未定义

azBest.start();

78(第 276 行)


我不知道是什么导致了语法错误。除了第一个和最后一个错误之外的每个错误似乎都指向<!DOCTYPE html>

4

1 回答 1

1

我想通了这个问题...

当 apache 重写完成它的工作时,它会更改基础,因此我包含的脚本都没有被正确找到。

为了解决这个问题,我将我的 htdocs 更改为:

RewriteEngine On
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index.html [L,QSA]

我还将包含的脚本更改为相对的并添加到 index.html 的头部。

于 2013-10-17T00:25:26.873 回答