在那我的工作一個Web應用程序,我有處理類似下面的網址:咕嚕:有一段位置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
,以及livereload
任務,其配置connect-modrewrite
,運行格朗特低於一個:
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標記聲明的文件路徑。 – 2015-01-21 00:26:24
似乎沒有選項來檢查文件是否存在,如在apache的mod_rewrite中。你有沒有試過註釋掉的版本? 'middlewares.push(modRewrite(['\\ HTML |!\\ JS |。\\ SVG | \\ CSS | \\ PNG |。\\ \\ JPG GIF | \\ SWF $ /指數.html [L]']));' – RoryKoehein 2015-01-21 11:56:51
正則表達式不是我最好的能力。是的,取消評論的工作。我沒有注意到沒有註釋的正則表達式的可能性,團隊中的某個人已經替換了另一個並導致這個問題。我可以編輯您的答案,解釋並標記爲正確嗎? – 2015-01-21 15:51:51