我有一个主干 - 牵线木偶应用程序路由问题让我疯狂。我为我的每个模块设置了Marionette.AppRouter。只要网址只有一个组件,路由就可以正常工作。当我们有第二个“目录”甚至是:id时,我在浏览器中为index.html中包含的每个文件都会出现语法错误..包括index.html本身。
例如,
myapp / articles工作正常。 myapp / articles / 78给了我这些问题。我甚至测试过在路由器中创建两个appRoutes ......“article”和“article / something”。我可以转到http://myapp
或http://myapp/article
,但http://myapp.article/something
会提供语法,而不会处理任何内容。
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:语法错误
低于...... 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:语法错误
featuredItems.js(第1行) SyntaxError:语法错误
popularItems.js(第1行) SyntaxError:语法错误
ads.js(第1行) SyntaxError:语法错误
articles.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>
答案 0 :(得分: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的头部。