2014-02-09 2 views
0

는 지금까지 내가 AngularJS와에서 해시 태그를 제거하기 위해 이해 내가 다음 코드를 추가 할 필요가 서버 측에서이를 지원 :AnguarJS + Node.js를 (웹 server.js) URL에서 해시 태그를 제거하고

config(function($locationProvider) { 
    $locationProvider.html5Mode(true); 
}). 

이 코드를 추가 한 후, 내 간단한 서버 (web-server.js)에서 각도 투오와 함께 제공되는 동일한 간단한 서버에서 404를 얻습니다.

나는이 작업을 지원하기 위해 내 서버에 라우팅을 추가해야한다는 것을 이해하는 데 도움이되는 2 개의 링크를 발견했습니다.

AngularJs Routing without hashtag in link?

routing and clean path (no hashtag) not working in angularJS

나는

내 링크이었다 이전되었다 필요한 웹 server.js 경로를 추가하는 방법을 이해하지 못했다 : /app/index.html/#를 자동차 이제 그는 /app/index.html/car입니다.

새 라우팅 요구에 맞게 web-server.js를 어떻게 변경해야합니까?

감사합니다.

답변

1

라우팅을 사용하여 노드 서버를 설정하는 가장 빠른 방법은 Express 프레임 워크를 사용하는 것입니다. 당신의 웹 애플리케이션의 익스프레스 매우 간단한 골격으로

은 다음과 같이 보일 것이다 :

var http = require('http'); 
var express = require('express'); 

var app = express(); 

app.configure(function() { 
    app.set('views', __dirname + '/app'); 
    app.set('view engine', 'ejs');  //EJS template engine (no HTML for now) 
    app.use('/public', express.static(__dirname + '/public')); //specify path to your static files 
}); 

//"car", "bus", and "van" are the pages of your app 
app.get('/:page(|car|bus|van)', function(req, res) { 
    res.render('index', { 
     page: req.params.page  //pass page to the view (just in case) 
    }); 
}); 

http.createServer(app).listen(80); 

이 그럼 당신은 실제로 일부 additioal 기능과 HTML 파일입니다 /app/index.ejs 파일을 만들어야합니다.

따라서 브라우저에서 /car, /bus 또는 /van으로 이동하면 내용이 index.ejs 개로 표시됩니다.

희망이 도움이됩니다.

편집

난 그냥 /:page(|car|bus|van) 부분을 수정했습니다. 마지막 버전을 사용해

편집 2

아, 나는, 당신은 자세한 응답을

+0

감사 EJS 템플릿을 사용하려면 명령 줄에서 npm install ejs에이 말을 잊고, 내가 페이지를 추가하십시오 스크립트를 실행하면 서버가 작동하지만 항상 얻을 수있는 것처럼 보입니다. 응답으로 /app/index.html을 얻을 수 없습니다. 어떻게해야합니까? –

+0

@LiadLivnat 당신은'/ app/index.html'로 이동해서는 안됩니다. 당신은'/','/ car' 등으로 이동해야합니다.'app.get' 메소드의 예제에서'/ car','/ bus'와'/ van '에 app/index.ejs 파일을 제공하도록 지정했습니다. '요청. 나는 또한 내 게시물을 편집했다. (지금은'/'요청과 함께 작동한다.) – Curious

+0

덕분에 다음과 같은 오류가 발생한다. "오류 : Function.Module._resolveFilename (module.js : 338 : 15)에서 'ejs'모듈을 찾을 수 없습니다." –

관련 문제