내가 함께 일하고 있어요 하나 개의 웹 애플리케이션에서 기간과 위치 URL의 응용 프로그램 :그런트 : 나는 아래와 같은 URL을 거래를
http://localhost:8080/section/value.with.periods
이 value.with.periods
는 사람처럼 URL의 PARAM입니다 당신은 각도의 routeProvider
에 선언
angular.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/section/:param', {
templateUrl: 'url-to-template',
controller: 'ExampleCtrl',
resolve: {
...
}
});
}]);
문제는 그런트 작업에서 실행에 사용되는 서버가, 거기에 마침표 URL을 처리 할 수 있다는 것입니다 :
Cannot GET /section/value.with.periods
grunt-contrib-proxy
및
connect-modrewrite
하고
connect-modrewrite
를 구성하는
livereload
작업, 함께 그런트 실행 해요
은 아래와 : 나는 기간과 URL을 처리 할 수 있어야합니다
livereload: {
options: {
open: 'http://localhost:<%= connect.options.port %>',
base: [
'.tmp',
'<%= config.app %>'
],
middleware: function(connect, options) {
if (!Array.isArray(options.base)) {
options.base = [options.base];
}
// Setup the proxy
var middlewares = [proxySnippet];
var modRewrite = require('connect-modrewrite');
middlewares.push(modRewrite(['^[^\\.]*$ /index.html [L]']));
// middlewares.push(modRewrite(['!\\.html|\\.js|\\.svg|\\.css|\\.png|\\.jpg\\.gif|\\swf$ /index.html [L]']));
// Serve static files.
options.base.forEach(function(base) {
middlewares.push(connect.static(base));
});
// Make directory browse-able.
var directory = options.directory || options.base[options.base.length - 1];
middlewares.push(connect.directory(directory));
return middlewares;
}
}
}
Angular에서 사용되는 매개 변수에 적용됩니다. 어떤 도움을 주시면 감사하겠습니다.
감사합니다.
정규 표현식을 제안 사항으로 바꿨으므로 앱이 해당 종속성을 찾을 수 없습니다. 그들 모두는 현재'index.html'를 소스로 지정하고 콘솔에 몇 가지 오류를 던집니다. 이 원래 정규식을 수정해야하거나 HTML 태그에 선언 된 파일 경로에만 사용할 경우 생각했습니다. –
아파치의 mod_rewrite처럼 파일이 존재하는지 확인하는 옵션이없는 것 같습니다. 주석 처리 된 버전을 사용해 보셨습니까? 'middlewares.push (modRewrite ([ '! \\ .html | \\ .js | \\ .svg | \\ .css | \\. png | \\. jpg \\ .gif | \\ swf $/index .html [L] '])));' – RoryKoehein
정규 표현식이 최선의 능력이 아닙니다. 예, 주석 처리가되지 않았습니다. 주석이없는 정규 표현식의 가능성을 알지 못했고, 팀의 다른 누군가가 다른 하나를 대신하여이 문제를 일으켰습니다. 답변을 수정하고 설명하며 올바른 것으로 표시 할 수 있습니까? –