I just started working with iron router on meteor. I need to show an image on homepage. I was able to configure route for 'home' using the client side routing. For static files I tried to google and found that adding a server side route might help. So, I added the following code on server's router.js.
Router.map(function() {
this.route('files', {
path: '/files/:path(*)',
action: function() {
var path = this.params.path;
console.log('will serve static content @ '+path);
this.response.sendfile(path);
}
});
});
When I try to access http://localhost:3000/files/someImage.png
, it says that no route is defined for /files/someImage.png
. Am I doing something wrong? Is there any other way to serve static files using iron router?
Instead of doing all this, you can just put the files under your public
directory. If you add the file:
myApp/public/images/kitten.png
You can access it from your templates like:
<img src="/images/kitten.png">
No routes are needed to make that work.
Beware of overlooking the lead slash.
<img src="images/kitten.png">
the above example will work from your top level routes like /books which makes it easy to miss, but fail on /books/pages.