【问题标题】:Routing Issue with Iron Router in MeteorMeteor 中 Iron Router 的路由问题
【发布时间】:2015-04-23 15:53:58
【问题描述】:

我在 Chrome 和 Firefox 中得到“等待本地主机”,但怀疑我的笔记本电脑的浏览器存在问题;问题出在 Iron Router 上。查看我的 router.js:

Router.configure({
  layoutTemplate: 'layout',
  loadingTemplate: 'loading',
  notFoundTemplate: 'notFound',
  waitOn: function() { return Meteor.subscribe('jobs'); }
});


Router.route('/', {name: 'jobsList'});


Router.route('/jobs/:_id/', {
  name: 'jobPage',
  data: function() { return Jobs.findOne(this.params._id); }
});

// route to edit a job post
Router.route('/jobs/:_id/edit/', {
  name: 'jobEdit',
  data: function() { return Jobs.findOne(this.params._id); }
});

Router.route('/jobs/create', {name: 'jobCreate'});

var requireLogin = function() {
  if (! Meteor.user()) {
    if (Meteor.loggingIn()) {
      this.render(this.loadingTemplate);
    } else {
      this.render('accessDenied');
    }
  } else {
    this.next();
  }
}

Router.onBeforeAction('dataNotFound', {only: 'jobPage'});

Router.onBeforeAction(requireLogin, {only: 'jobCreate'});

转到/jobs/sgjdhdbhbbd 页面不会加载,但如果我将Router.route('/jobs/:_id/', { 更改为Router.route('/:_id/', {,页面就会加载。我搞不清楚了。有什么可以尝试的调整吗?

********编辑********

如果有帮助,我也在使用Polymer

【问题讨论】:

    标签: javascript meteor iron-router


    【解决方案1】:

    感谢大家的支持。我应该一开始就提到我使用的是 Polymer,所以我很抱歉。

    问题出在 Polymer 上,正如 here 所讨论的那样。我已经完成了 ThaumRystra 所说的一切,一切都很好。

    我已经解决了这个问题,在所有聚合物进口中添加一个斜杠:

    替换:

    rel="import" href="bower_components/paper-toast/paper-toast.html">
    rel="import" href="bower_components/paper-fab/paper-fab.html">
    

    与:

    rel="import" href="/bower_components/paper-toast/paper-toast.html">
    rel="import" href="/bower_components/paper-fab/paper-fab.html">
    

    如果你有图片src url,在前面加上正斜杠,它就会显示出来。

    【讨论】:

      【解决方案2】:

      我觉得问题出在这里:

      Router.route('/jobs/create', {name: 'jobCreate'});
      

      “create”在您的路线“jobCreate”上用作“id”

      试试这样的

      Router.route('/jobs/view/:_id/', {
        name: 'jobPage',
        data: function() { return Jobs.findOne(this.params._id); }
      });
      
      // route to edit a job post
      Router.route('/jobs/edit/:_id/', {
        name: 'jobEdit',
        data: function() { return Jobs.findOne(this.params._id); }
      });
      
      Router.route('/jobs/create/', {name: 'jobCreate'});
      

      编辑:

      问题的根源在这里:

      Router.route('/jobs/:_id/', {
      

      /jobs/ 之后的所有路径都用作 :id

      【讨论】:

      • 没有。不工作;同样的问题。如果我使用 pathFor 转到该页面并刷新浏览器,它就会滞后。如果我使用:<paper-fab icon="create" class="pink" onclick="location.href='{{pathFor 'jobCreate'}}'"></paper-fab> 它会滞后。任何带有/jobs/ 的链接都会滞后
      • 什么是出版物“工作”?
      • 你在/server/中有这样的东西吗:Meteor.publish('jobs', function() { return Jobs.find({}); }); ??如果不是,你有问题:) 如果是,你能粘贴吗?
      • 我确实有。 “/”之后的任何内容(:_id)都会挂起。例如:/jkadhb/(:_id)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      相关资源
      最近更新 更多