2013-08-20 2 views
20

J'ai modifié mon projet Express.js pour utiliser la tondeuse pour installer les composants. Tous les composants sont installés sous/components (/components/jquery/jquery.js ... etc).Routage Express.js pour les composants de la tondeuse

J'ai créer mon propre routeur et qui ressemble à ceci:

app.get('/', routes.index); // main page 
app.get('/p/:name', routes.p); //redirect routes 

app.get('/api/contacts', api.contacts); //look at all 
app.get('/api/contact/:id', api.contact); //look at one 
app.post('/api/contact', api.add); //add contact 
app.put('/api/contact/:id', api.edit); //edit&update contact 
app.delete('/api/contact/:id', api.delete); //delete contact 

Il n'y a pas d'itinéraires pour/composants donc http://my.project/components/jquery/jquery.js revient avec un Cannot GET /components/jquery/jquyery.js

Quelqu'un peut-il s'il vous plaît laissez-moi savoir quelle est la meilleur moyen d'ajouter le routage pour tous les composants sous/composants?

Répondre

53

Vous souhaitez probablement utiliser le middleware statique pour ce faire. Je ne suis pas familier avec charmille mais si tous vos composants sont installer dans /components alors vous pouvez faire ce qui suit:

app.use(express.static(__dirname + '/components')); 

Cela signifie que si vous avez /components/jquery/jquery.js vous pouvez l'inclure avec

<script src='/jquery/jquery.js'></script> 

Si vous plutôt préfixe avec /components vous pouvez faire:

app.use('/components', express.static(__dirname + '/components')); 

de cette façon, vous pouvez demander les scripts avec:

<script src='/components/jquery/jquery.js'></script> 
5

Si vous utilisez connect-actifs, quelque chose comme ça fonctionne bien:

app.use require("connect-assets")(paths: ['assets/js', 'assets/css', 'bower_components']) 

Puis dans votre js que vous divulguez pouvez simplement inclure des composants de Bower comme les autres actifs js. actifs/application.js:

// bower components: 
//= require jquery/dist/jquery 
//= require underscore/underscore 
//= require backbone/backbone 
// local assets: 
//= require my_app 
+0

Je cherchais à ajouter le support Bower un projet basé hackathon-démarreur, ce qui est parfait! – DigitalDesignDj

Questions connexes