我正在尝试将Sammy用于我的SPA,但是我无法处理此错误:
[Sun Mar 29 2020 17:37:19 GMT+0300 (Eastern European Summer Time)] #main 404 Not Found get / Error: 404 Not Found get /
at Sammy.Application.error (sammy-latest.min.js:5)
at Sammy.Application.notFound (sammy-latest.min.js:5)
at Sammy.Application.runRoute (sammy-latest.min.js:5)
at Sammy.Application._checkLocation (sammy-latest.min.js:5)
at Sammy.Application.run (sammy-latest.min.js:5)
at app.js:23
at app.js:24
似乎该应用未在HTML文件中找到该元素,但它在那里。这是我的JS代码以及在index.html中导入的内容:
(()=>{
const app = Sammy('#main', function(){
console.log('Hello');
})
app.run('/#');
})()
HTML:
<script src="./node_modules/jquery/dist/jquery.min.js"></script>
<script src="./node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="./node_modules/handlebars/dist/handlebars.min.js"></script>
<script src="./node_modules/sammy/lib/min/sammy-latest.min.js"></script>
<script src="./node_modules/sammy/lib/plugins/sammy.handlebars.js"></script>
(我有id为'main'的div,需要使用)
我是否应该进行其他配置?
正如@Dominique在评论中所说,您应该使用app.run('#/')
而不是app.run('/#')
运行该应用程序。
而且,您没有正确使用SammyJS。如果要使用“基本” routes,则可以使用GET方法:
const app = Sammy('#main', function(){
// Here you should create routes, and not write code
// Example : Home page : your.site/page.html
this.get('#/', function() {
console.log("Welcome Home");
});
// Exemple : your.site/page.html#/sayhello
this.get('#/sayhello', function() {
console.log("Hello");
});
})
例如,如果您想在控制台中显示您在URL中写的内容,则可以使用URL来使用参数:
var app = Sammy('#main', function() {
// msg is a variable, where its value comes from the url
this.get('#/display/:msg',function(c) {
console.log(c.params.msg);
});
}
然后如果您转到your.site/page.html#/display/I_love_donuts
,I_love_donuts
将在控制台中打印。
[当我开始学习SammyJS时,我发现了这个非常有用的速成课程:https://www.youtube.com/watch?v=QBKm444gO0U。如果您对SammyJS不满意,我建议您观看。
希望对您有所帮助!