gpt4 book ai didi

javascript - 咕噜声 : Location URL app with period

转载 作者:行者123 更新时间:2023-11-30 17:05:50 24 4
gpt4 key购买 nike

在我正在使用的一个网络应用程序中,我处理的 URL 如下所示:

http://localhost:8080/section/value.with.periods

这个 value.with.periods 是一个 URL 参数,就像你在 Angular 的 routeProvider 上声明的那样:

angular.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/section/:param', {
templateUrl: 'url-to-template',
controller: 'ExampleCtrl',
resolve: {
...
}
});
}]);

问题是所使用的服务器在 Grunt 任务下运行,无法处理其中包含句点的 URL:

无法获取/section/value.with.periods

我正在使用 grunt-contrib-proxyconnect-modrewrite 以及配置 livereload 任务运行 Grunt >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 上使用的参数上带有句点的 URL。任何帮助将不胜感激。

谢谢。

最佳答案

您重写的正则表达式排除了所有带有句点的路径:

^[^\\.]*$

这意味着:将 url 与所有字符匹配,除非它们有反斜杠或句点。所以 /section/value.with.periods 将被忽略。

您应该将您的正则表达式更改为更宽容的内容:

middlewares.push(modRewrite(['^(.*)$ /index.html [L]']));

你应该可以开始了。

编辑解决方案:

在评论中我们得出了答案:上面的正则表达式会将所有url重写为index.html,导致其他文件无法提供。有一条注释掉的行只重写具有未知文件扩展名的 url:

middlewares.push(modRewrite(['!\\.html|\\.js|\\.svg|\\.css|\\.png|\\.jpg|\\.gif|\\.swf$ /index.html [L]']));

这给出了期望的结果。有关详细信息,请参阅评论。

关于javascript - 咕噜声 : Location URL app with period,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28055374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com