.NET 환경에서 빌드 된 AngularJS 응용 프로그램을 테스트하기 위해 NodeJS 서버를 임시 해결책으로 사용하려고합니다. (Mac에서 사용). 두 앱 모두 <base>
태그를 사용하고 web.config에 404의 새로 고침 등을 방지하기위한 규칙을 다시 작성했습니다.NodeJS 서버 - 여러 URL 다시 쓰기 구성
잠재적 인 접근 방법은 here으로 논의되었지만 여러 규칙을 포함하도록 예제를 업데이트하는 데 문제가 있습니다.
|-- global (both apps use assets located inside of global)
|-- apps
|-- myApp1
|-- myApp2
애플 리케이션 자체가 상대가 모든 자산에 대한 경로를 근절하기 위해 사용
내가 시험에 노력하고있어디렉토리 구조는 다음과 같이 보인다. 따라서, 예를 들어 :
myApp1 :
/global/images/image.jpg /apps/myApp1/images/image.jpg /apps/myApp1/css/styles.css /apps/myApp1/js/scripts.js
다음과 같은 규칙
가 의 Web.config에 묘사되어<rule name="AngularJS Route for myApp1" stopProcessing="true">
<match url="^myApp1/.*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/apps/myApp1/default.aspx" />
</rule>
<rule name="AngularJS Route for myApp2" stopProcessing="true">
<match url="^myApp2/.*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/apps/myApp2/default.aspx" />
</rule>
두 응용 프로그램은 각각의를 사용하여 액세스 할 수 별칭 :
그래서, 위와 같이 매우 간단한 nodejs 서버를 만들려고합니다. 제작 준비 서버를 실행할 무언가를 찾고 있지 않습니다. 이 클라이언트가 테스트 할 물건을 보내면 언제든지 내가 할 수있는 일이 있습니다.
나는 사람 above과 같은 몇 가지 링크에서 찾기 시작하지만 아래의 코드를 사용하여 여러 재 작성 함께 할 수있는 방법을 알아내는 힘든 시간을 보내고 있어요 :
server.js를
const express = require('express');
const app = express();
app.use((req, res, next) => {
if (req.url === 'myApp1') {
//what do I do here?
//tell it to reference the orig path?
req.url = '/apps/myApp1/';
//or do I use the router approach that's discussed in my reference link above?
}
next();
});
app.use(express.static(__dirname + '/'));
app.listen(3000,() => {
console.log('Listening on port 3000')
});
이 질문은 많은 질문이있는 것처럼 보입니다.하지만 여러 개의 재 작성에 적용된 것을 아직 보지 못한 채로 두 앱이 모두 가져 오는 공유 된 글로벌 디렉터리를 염두에 두어야합니다. 누구든지 전에 이런 걸해야만 했어?