2016-07-15 8 views
0

現時点ではExpress &の角度で複数ページアプリケーションを構築しています。私はこのように私のフォルダ構造を設定しました:Expressでページを提供し、ファイルを含めることができます

project 
|- server.js (The webserver) 
|- routes.js (The routes to serve the html pages) 
| |- node_modules 
| |- config 
| |- controllers (The routes for the API) 
| |- models (The SQL models - Sequelizer 
| |- client 
|  |- client.js (AngularJS main module) 
|  |- pages (Splitting the pages into Angular SPA) 
|   |- pageFolder (One for each page) 
|   |- page.html (The template for this SPA) 
|   |- page.js (The AngularJS controller) 
|   |- views (The views for the page) 

私は大規模な研究を行ってきたし、これはすべてのものを構造化するために非常に快適な方法のように思えました。私のコードのAPIセクションは、クライアント側のAngularJSモジュールと同じように機能します。私は2つをリンクするのに苦労している。私routes.jsファイルで

、私が要求されている特定のページのインデックスファイルを提供 - たとえば:

var express = require("express"); 
var router = express.Router(); 

router.get("/", function(request, response){ 
    response.sendFile("home.html",{ 
     root: "client/pages/home" 
    }); 
}); 

router.get("/otherPage", function(request, response){ 
    response.sendFile("otherPage.html",{ 
     root: "client/pages/otherPage" 
    }); 
}); 


module.exports = router; 
これは私がページにAngularJSモジュールを統合しようとして始めまで、ファイル完全に働いていた

。私はnode_modulesフォルダーへの/resourcesスタティックルートを設定しています。これによりAngularJSと他のライブラリーを各ページに含めることができます。 AngularJSコントローラ、しかし、ページの各フォルダではなく、集中フォルダcontrollersに入れて、私は例えば、このようなコントローラを含むしようとしている。

<script src="home.js"></script> 

サーバがhttp://website.com/home.jsとしてリクエストを処理している私は、理解することができますが、私はどのようにページにそのフォルダ内のファイルを含めることを許可するか分からないのですか?

任意の提案をいただければ幸いです:)

答えて

1

あなたはこれを試すことができます:

app.use(express.static('folder1')); 
app.use('/folder2', express.static('folder2')); 

router.get("/otherPage", function(request, response){ 
    response.sendFile(__dirname + "/otherPage.html"); 
}); 

この方法では、website.com/folder2がフォルダ2からファイルを提供し、あなただけのwebsite.comによってそれらを得ることができます/ folder2/fileとwebsite.com/otherPageに行くと、/otherPage.htmlとそのようなものを与えるでしょう。

+0

「folder1」と「folder2」にはどのフォルダを使用する必要がありますか? – nickcorin

+0

スターターのためにpageFolderを提供するつもりです。静的な方法で提供するアセットがもうある場合は、その方法で提供します。私は角度についてあまり知らないので、私はもっと助けることはできません。 – ardilgulez

関連する問題