0
votes
Meteor app can't find routes - Stack Overflow
Asked
Viewed 733 times
0

New to meteor. Just cloned a git repo, and upon launching the app, I get a router.js:347 There is no route for the path: / error.

This is my route for root in imports/startup/client/routes.js

FlowRouter.route('/', {
    name: 'Home',
    action() {
        BlazeLayout.render('app_body', {tabs: 'tabs', inbox: 'inbox', upload: 'upload', invite: 'invite'});
        console.log('root loaded');
    },
});

Here is the list of packages

    accounts-facebook                         1.0.10  Login service for Facebook accounts
accounts-password                         1.2.14* Password support for accounts
alanning:roles                            1.2.15  Authorization package for Meteor
aldeed:collection2                        2.9.1  Automatic validation of insert and update operations on the client and server.
aldeed:simple-schema                      1.5.3  A simple schema validation object with reactivity. Used by collection2 and autoform.
arillo:flow-router-helpers                0.5.2  Template helpers for flow-router
blaze-html-templates                      1.0.4  Compile HTML templates into reactive UI with Meteor Blaze
check                                     1.2.3  Check whether a value matches a pattern
dburles:collection-helpers                1.0.4  Transform your collections with helpers that you define
ecmascript                                0.5.7* Compiler plugin that supports ES2015+ in all .js files
email                                     1.1.16* Send email messages
es5-shim                                  4.6.13* Shims and polyfills to improve ECMAScript 5 support
hpx7:youtube-iframe-player                0.4.15  Control YouTube's embedded player using Meteor
http                                      1.2.8* Make HTTP calls to remote servers
jazeee:spiderable-longer-timeout          1.2.13  Extended spiderable package: SSL, caching, longer timeout, no stdin issues, publish flag
jchristman:tagsinput-autocomplete-edited  1.1.0+ A combination of the mizzao:autocomplete library and a tagsinput-like functionality
jquery                                    1.11.9  Manipulate the DOM using CSS selectors
kadira:blaze-layout                       2.3.0  Layout Manager for Blaze (works well with FlowRouter)
kadira:flow-router                        2.12.1  Carefully Designed Client Side Router for Meteor
keepnox:perfect-scrollbar                 0.6.8  Perfect-scrollbar packaged for meteor
manuel:reactivearray                      1.0.5  Reactive Array for Meteor
matb33:collection-hooks                   0.8.3* Extends Mongo.Collection with before/after hooks for insert/update/remove/find/findOne
meteor-base                               1.0.4  Packages that every Meteor app needs
meteorhacks:aggregate                     1.3.0  Proper MongoDB aggregations support for Meteor
mobile-experience                         1.0.4  Packages for a great mobile user experience
momentjs:moment                           2.14.4  Moment.js (official): parse, validate, manipulate, and display dates - official Meteor packaging
mongo                                     1.1.10* Adaptor for using MongoDB and Minimongo over DDP
reactive-dict                             1.1.8  Reactive dictionary
reactive-var                              1.0.10  Reactive variable
sacha:spin                                2.3.1  Simple spinner package for Meteor
saucecode:timezoned-synced-cron           1.2.11  Fork of original w/ timezone support. Define and run scheduled jobs across multiple servers.
session                                   1.1.6  Session variable
spiderable                                1.0.13  Makes the application crawlable to web spiders
standard-minifier-css                     1.1.8* Standard css minifier used with Meteor apps by default.
standard-minifier-js                      1.1.8* Standard javascript minifiers used with Meteor apps by default.
tomwasd:flow-router-seo                   0.0.3  A simple way to set the title and meta tags for sites using flow router
tracker                                   1.1.0  Dependency tracker to allow reactive callbacks
twbs:bootstrap                            3.3.6  The most popular front-end framework for developing responsive, mobile first projects on the web.

What is it that is causing the app not to find the routes file? I have looked through the following posts for some guidance, but have found none.

Meteor Routing Error : There is no route for the path: /

https://github.com/kadirahq/flow-router/issues/608

https://github.com/kadirahq/flow-router/issues/185

http://coderchronicles.org/2016/04/08/getting-started-with-meteor-1-3-react-and-flowrouter/

Any help solving the problem would be appreciated. I feel like I'm missing something simple.

-S

**project file structure

imports/
  startup/
    client/
      index.js               
      routes.js                 
    server/
      fixtures.js             
      index.js               
  api/               
     server/
        publications.js       

  ui/
    components/               

    layouts/                   
    pages/                     
client/
  main.js 
  head.js
  main.js                   
server/
  main.js
  fixtures.js
 server-global.js
    0

    Are you importing the routes file into your app's main container?

    For example, if you have a /client/main.js file that gets loaded from client side at startup, then it should include the import reference to routes file as follows:

    import '/imports/startup/client';

    Or, import '/imports/startup/client/routes.js';

    1
    • Yes, I have import './routes.js'; import './helpers.js'; import './client-global.js'; In my index.js in /startup/client (same folder as my routes)
      – IWI
      Aug 19 2016 at 21:18
    0

    Put your route file in 'imports/starup/lib' (lib - for example). In fast-render package recommended use 'lib', if you wanna use it. If no - 'client';

    Then make sure you imported your route file in 'root/client/main.js';

    Please, read this part of docs: https://guide.meteor.com/structure.html#javascript-structure

    It is very helpful article.

    UPD: Please, remove duplicate files in your client/main.js When, in client/main.js

    import '/imports/startup/client';
    

    In your imports/startup/client/index.js

    import './routes.js';
    

    And now it will work. Dont forget, you must import all views you wanna use in your route.

    6
    • I moved my routes to imports/startup/client/lib and changed my routes import to import '../lib/routes.js'; but I am still getting the same error
      – IWI
      Aug 19 2016 at 21:26
    • not 'import' - 'imports'. In your root directory u have at least two folders and files - client/main.js and server/main.js In your client/main.js - use import '/imports/startup/lib/router.js'; Aug 20 2016 at 6:01
    • Hey, I tried that, unfortunately, the app still cant find the routes...
      – IWI
      Aug 21 2016 at 13:12
    • Can u share your project file structure? Aug 21 2016 at 13:40
    • i added structure to top
      – IWI
      Aug 21 2016 at 21:19
    0

    Problem fixed. Instead of launching with meteor run, need to launch with meteor --settings settings.json --production

      Your Answer

      By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

      Not the answer you're looking for? Browse other questions tagged or ask your own question.

       
      3

      3 Answers

      0
      votes

      Are you importing the routes file into your app's main container?

      For example, if you have a /client/main.js file that gets loaded from client side at startup, then it should include the import reference to routes file as follows:

      import '/imports/startup/client';

      Or, import '/imports/startup/client/routes.js';

      0
      votes

      Put your route file in 'imports/starup/lib' (lib - for example). In fast-render package recommended use 'lib', if you wanna use it. If no - 'client';

      Then make sure you imported your route file in 'root/client/main.js';

      Please, read this part of docs: https://guide.meteor.com/structure.html#javascript-structure

      It is very helpful article.

      UPD: Please, remove duplicate files in your client/main.js When, in client/main.js

      import '/imports/startup/client';
      

      In your imports/startup/client/index.js

      import './routes.js';
      

      And now it will work. Dont forget, you must import all views you wanna use in your route.

      0
      votes

      Problem fixed. Instead of launching with meteor run, need to launch with meteor --settings settings.json --production