Skip to content

Commit 56eb2dc

Browse files
committed
Fixed problem with Expires header.
1 parent 1924ef4 commit 56eb2dc

3 files changed

Lines changed: 11 additions & 6 deletions

File tree

changes.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
- updated: NoSQL embeddded version
2929
- updated: `U.ls()` --> [filter] can be `string` or `RegExp`
3030

31+
- fixed: (IMPORTANT) Expires headers (problem with Russian timezone)
3132
- fixed: (IMPORTANT) SchemaBuilder validation
3233
- fixed: (IMPORTANT) view caching
3334
- fixed: (IMPORTANT) U.keywords()

index.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ function Framework() {
428428

429429
this.id = null;
430430
this.version = 1970;
431-
this.version_header = '1.9.7-26';
431+
this.version_header = '1.9.7-27';
432432

433433
var version = process.version.toString().replace('v', '').replace(/\./g, '');
434434
if (version[0] !== '0' || version[1] !== '0')
@@ -4381,7 +4381,7 @@ Framework.prototype.responseStatic = function(req, res, done) {
43814381

43824382
if (RELEASE) {
43834383
headers['Etag'] = etag;
4384-
headers['Expires'] = new Date().add('y', 1);
4384+
headers['Expires'] = prepare_date(new Date().add('y', 1));
43854385
headers[RESPONSE_HEADER_CACHECONTROL] = 'public, max-age=' + framework.config['default-response-maxage'];
43864386
}
43874387

@@ -4634,7 +4634,7 @@ Framework.prototype.responseFile = function(req, res, filename, downloadName, he
46344634
delete returnHeaders.ETag;
46354635

46364636
if (!res.getHeader('Expires'))
4637-
returnHeaders.Expires = new Date().add('y', 1);
4637+
returnHeaders.Expires = prepare_date(new Date().add('y', 1));
46384638
else if (returnHeaders.Expires)
46394639
delete returnHeaders.Expires;
46404640

@@ -4724,7 +4724,7 @@ Framework.prototype.responseFile = function(req, res, filename, downloadName, he
47244724
if (canCache && !res.getHeader('Expires')) {
47254725
var dt = new Date();
47264726
dt.setFullYear(dt.getFullYear() + 1);
4727-
returnHeaders.Expires = dt;
4727+
returnHeaders.Expires = prepare_date(dt);
47284728
} else if (returnHeaders.Expires)
47294729
delete returnHeaders.Expires;
47304730

@@ -5240,7 +5240,7 @@ Framework.prototype.responseStream = function(req, res, contentType, stream, dow
52405240
if (RELEASE) {
52415241
var dt = new Date();
52425242
dt.setFullYear(dt.getFullYear() + 1);
5243-
returnHeaders.Expires = dt;
5243+
returnHeaders.Expires = prepare_date(dt);
52445244
returnHeaders['Last-Modified'] = 'Mon, 01 Jan 2001 08:00:00 GMT';
52455245
}
52465246

@@ -15109,6 +15109,10 @@ function isGZIP(req) {
1510915109
return ua.lastIndexOf('Firefox') !== -1;
1511015110
}
1511115111

15112+
function prepare_date(dt) {
15113+
return dt.toUTCString();
15114+
}
15115+
1511215116
function prepare_viewname(value) {
1511315117
// Cleans theme name
1511415118
return value.substring(value.indexOf('/', 2) + 1);

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
"name": "Сковорода Никита Андреевич",
6464
"email": "chalkerx@gmail.com"
6565
}],
66-
"version": "1.9.7-26",
66+
"version": "1.9.7-27",
6767
"homepage": "http://www.totaljs.com",
6868
"bugs": {
6969
"url": "https://github.com/totaljs/framework/issues",

0 commit comments

Comments
 (0)