Navigo.js仅适用于localhost

时间:2018-06-06 21:04:43

标签: javascript routing single-page-application client-side

我正在尝试为我的SPA构建路由,问题是当我使用localhost:3000时路由工作正常。它就像它想象的那样工作。但如果网址为127.0.0.1:8000domain.com/route,则无效。

对于localhost:3000我正在使用npm模块lite-server而对于127.0.0.1:8000我正在使用npm模块local-web-server。我用于路由的库是Navigo

多条路线:Example

试过提供的演示,仍然没有运气。搜索互联网,没有关于客户端路由的Stack Overflow问题,仅针对后端。

路线代码:

var routes = new Navigo(null);

    // Main
    routes.on(() => {
        console.log('Default route');
    });

    // Other routes
    routes.on({
        '/route1': () => {
            console.log('route1');
        },
        '/route2': () => {
            console.log('route2');
        }
    }).resolve();

    // 404
    routes.notFound(() => {
        console.log(404);
    }).resolve();

只有默认路线有效,其余部分将被忽略。

感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:1)

在127.0.0.1或其他域名上对我完全正常。

const dummyTarget = document.querySelector('div'); // <-- Dummy target to fake navigation

// Initial Navigo
var root = null;
var useHash = true; // Defaults to: false
var hash = '#!'; // Defaults to: '#'
var router = new Navigo(root, useHash, hash);

router
    .on({
      '/': () => { // This is actually the route
        dummyTarget.innerHTML = `I'm on home page`;

      },
      '/another': () => {
        dummyTarget.innerHTML = 'Now on second page';
      }
    })
    .resolve();

结果: enter image description here