Express.jsプロジェクトを変更して、bowerを使用してコンポーネントをインストールしました。すべてのコンポーネントは/components(/components/jquery/jquery.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
/ componentsのルートがないため、http://my.project/components/jquery/jquery.js
はCannot GET /components/jquery/jquyery.js
で返されます
/ componentsの下にあるすべてのコンポーネントにルーティングを追加するための最良の方法を教えてもらえますか?
これを行うには、静的ミドルウェアを使用することをお勧めします。私はbowerに精通していませんが、すべてのコンポーネントが/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>
Connect-assetsを使用する場合、次のようなものが適切に機能します。
app.use require("connect-assets")(paths: ['assets/js', 'assets/css', 'bower_components'])
次に、jsマニフェストに、他のjsアセットと同様にbowerコンポーネントを含めることができます。 Assets/application.js:
// bower components:
//= require jquery/dist/jquery
//= require underscore/underscore
//= require backbone/backbone
// local assets:
//= require my_app