2013-08-20 3 views
20

Express.jsプロジェクトを変更して、bowerを使用してコンポーネントをインストールしました。すべてのコンポーネントは/コンポーネント(/components/jquery/jquery.js ...など)の下にインストールされます。ベアコンポーネントのExpress.jsルーティング

私はこのようになりますこれもと自分のルータを作成しています

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 

用/コンポーネント一切のルートがありませんので、http://my.project/components/jquery/jquery.js誰かが私に何を教えてくださいすることができCannot GET /components/jquery/jquyery.js

に戻ってきます/コンポーネントの下にあるすべてのコンポーネントのルーティングを追加する最も良い方法は?

答えて

53

これを行うには、おそらく静的ミドルウェアを使用します。私は亭に慣れていないですが、すべてのコンポーネントが/componentsにインストールされている場合、あなたは、次の操作を行うことができます

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

これは、あなたが/components/jquery/jquery.jsを持っている場合、あなたはあなたであれば、むしろ

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

でそれを含めることができますあなたが行うことができます/componentsを持つ接頭辞を:

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

あなたがスクリプトを要求することができますこの方法:

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

あなたは、資産を接続使用する場合は、このような何かがうまく機能:あなたのjsの中に続いて

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

は、あなたは、単にjsの他の資産と同様亭の成分を含むことができるマニフェスト。 資産/ application.js:

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

私はハッカソン-スターターベースのプロジェクトに亭のサポートを追加するために探していたが、これは完璧です! – DigitalDesignDj

関連する問題