Skip to content

Commit 03c10e3

Browse files
Merge pull request #6 from solidusjs/keep-relative-paths
No need to replace relative paths into absolute paths
2 parents 9694a9f + 489f0cb commit 03c10e3

File tree

5 files changed

+29
-27
lines changed

5 files changed

+29
-27
lines changed

tasks/filerev_replace.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var path = require('path');
1212
var slash = require('slash');
1313

1414
var STARTING_DELIMITER = '(\\\\?\'|\\\\?"|\\\\?\\()';
15-
var ALLOWED_PATH_CHARS = '[^\'"\\(\\)\\?#]*?'; // Lazy, in order not to eat the optional starting character of ENDING_DELIMITER
15+
var ALLOWED_PATH_CHARS = '([^\'"\\(\\)\\?#]*?)'; // Lazy, in order not to eat the optional starting character of ENDING_DELIMITER
1616
var ENDING_DELIMITER = '(\\\\?\'|\\\\?"|\\\\?\\)|\\?|#)';
1717

1818
module.exports = function(grunt) {
@@ -29,9 +29,9 @@ module.exports = function(grunt) {
2929

3030
function filerev_summary_to_assets_paths( assets_root ) {
3131
var assets = {};
32-
for( var path in grunt.filerev.summary ){
33-
var src = file_path_to_web_path( path, assets_root );
34-
var dest = file_path_to_web_path( grunt.filerev.summary[path], assets_root );
32+
for( var filerev_path in grunt.filerev.summary ){
33+
var src = file_path_to_web_path( filerev_path, assets_root );
34+
var dest = path.basename( grunt.filerev.summary[filerev_path] );
3535
var regexp = asset_path_regexp( src );
3636
assets[src] = { dest: dest, regexp: regexp };
3737
}
@@ -47,8 +47,10 @@ module.exports = function(grunt) {
4747

4848
function asset_path_regexp( asset_path ) {
4949
return new RegExp( STARTING_DELIMITER + // p1
50-
'(' + ALLOWED_PATH_CHARS + escape_for_regexp( path.basename( asset_path ) ) + ALLOWED_PATH_CHARS + ')' + // p2
51-
ENDING_DELIMITER, // p3
50+
ALLOWED_PATH_CHARS + // p2
51+
'(' + escape_for_regexp( path.basename( asset_path ) ) + ')' + // p3
52+
ALLOWED_PATH_CHARS + // p4
53+
ENDING_DELIMITER, // p5
5254
'ig' );
5355
}
5456

@@ -60,12 +62,12 @@ module.exports = function(grunt) {
6062
var view = grunt.file.read( view_src );
6163
var changes = [];
6264

63-
var replace_string = function( match, p1, p2, p3 ) {
64-
var asset_path = absolute_asset_path( p2, view_src, views_root );
65+
var replace_string = function( match, p1, p2, p3, p4, p5 ) {
66+
var asset_path = absolute_asset_path( p2 + p3 + p4, view_src, views_root );
6567

6668
if( grunt.file.arePathsEquivalent( asset_path.toLowerCase(), asset_src.toLowerCase() ) ) {
6769
changed = true;
68-
return p1 + asset_dest + p3;
70+
return p1 + p2 + asset_dest + p4 + p5;
6971
} else {
7072
return match;
7173
}
@@ -88,7 +90,7 @@ module.exports = function(grunt) {
8890

8991
function absolute_asset_path( string, view_src, views_root ) {
9092
var asset_path = string.trim();
91-
if( asset_path[0] != '/' && asset_path[0] != '\\' ) {
93+
if( asset_path[0] !== '/' && asset_path[0] !== '\\' ) {
9294
asset_path = path.join( path.dirname( view_src ), asset_path );
9395
asset_path = file_path_to_web_path( asset_path, views_root );
9496
}

test/expected/assets/compiled/scripts.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
var path = '/images/ajax-loader.4e26f87c.gif';
33

44
// Relative path
5-
var path = '/images/ajax-loader.4e26f87c.gif';
6-
var path = '/images/ajax-loader.4e26f87c.gif';
7-
var path = '/images/ajax-loader.4e26f87c.gif';
5+
var path = '/oops/../images/ajax-loader.4e26f87c.gif';
6+
var path = '../images/ajax-loader.4e26f87c.gif';
7+
var path = '../oops/../images/oops/../ajax-loader.4e26f87c.gif';
88

99
// Delimiters
1010
var path = "/images/ajax-loader.4e26f87c.gif";
@@ -16,7 +16,7 @@ var path = '/images/ajax-loader.4e26f87c.gif', path = "/images/ajax-loader.4e26f
1616
var path = "body { background: url(\"/images/ajax-loader.4e26f87c.gif\"); }";
1717

1818
// Case insensitive
19-
var path = '/images/ajax-loader.4e26f87c.gif';
19+
var path = '/IMAGES/ajax-loader.4e26f87c.gif';
2020

2121
// With query string and anchor
2222
var path = '/images/ajax-loader.4e26f87c.gif?a=b';

test/expected/assets/compiled/styles.css

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22
body { background: url('/images/ajax-loader.4e26f87c.gif'); }
33

44
/* Relative path */
5-
body { background: url('/images/ajax-loader.4e26f87c.gif'); }
6-
body { background: url('/images/ajax-loader.4e26f87c.gif'); }
7-
body { background: url('/images/ajax-loader.4e26f87c.gif'); }
5+
body { background: url('/oops/../images/ajax-loader.4e26f87c.gif'); }
6+
body { background: url('../images/ajax-loader.4e26f87c.gif'); }
7+
body { background: url('../oops/../images/oops/../ajax-loader.4e26f87c.gif'); }
88

99
/* Delimiters */
1010
body { background: url("/images/ajax-loader.4e26f87c.gif"); }
1111
body { background: url(/images/ajax-loader.4e26f87c.gif); }
12-
body { background: url(/images/ajax-loader.4e26f87c.gif); }
12+
body { background: url( /images/ajax-loader.4e26f87c.gif ); }
1313
body { background: url('/images/ajax-loader.4e26f87c.gif'); background: url("/images/ajax-loader.4e26f87c.gif"); }
1414

1515
/* Escaped delimiters */
1616
body { content: "<img src=\"/images/ajax-loader.4e26f87c.gif\" />"; }
1717

1818
/* Case insensitive */
19-
body { background: url('/images/ajax-loader.4e26f87c.gif'); }
19+
body { background: url('/IMAGES/ajax-loader.4e26f87c.gif'); }
2020

2121
/* With query string and anchor */
2222
body { background: url('/images/ajax-loader.4e26f87c.gif?a=b'); }

test/expected/views/index.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
<img src="/images/ajax-loader.4e26f87c.gif" />
33

44
<!-- Relative path -->
5-
<img src="/images/ajax-loader.4e26f87c.gif" />
6-
<img src="/images/ajax-loader.4e26f87c.gif" />
7-
<img src="/images/ajax-loader.4e26f87c.gif" />
5+
<img src="/oops/../images/ajax-loader.4e26f87c.gif" />
6+
<img src="images/ajax-loader.4e26f87c.gif" />
7+
<img src="oops/../images/oops/../ajax-loader.4e26f87c.gif" />
88

99
<!-- Delimiters -->
1010
<img src="/images/ajax-loader.4e26f87c.gif" /><img src="/images/ajax-loader.4e26f87c.gif" />
1111

1212
<!-- Case insensitive -->
13-
<img src="/images/ajax-loader.4e26f87c.gif" />
13+
<img src="/IMAGES/ajax-loader.4e26f87c.gif" />
1414

1515
<!-- With query string and anchor -->
1616
<img src="/images/ajax-loader.4e26f87c.gif?a=b" />

test/expected/views/media/index.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
<img src="/images/ajax-loader.4e26f87c.gif" />
33

44
<!-- Relative path -->
5-
<img src="/images/ajax-loader.4e26f87c.gif" />
6-
<img src="/images/ajax-loader.4e26f87c.gif" />
7-
<img src="/images/ajax-loader.4e26f87c.gif" />
5+
<img src="/oops/../images/ajax-loader.4e26f87c.gif" />
6+
<img src="../images/ajax-loader.4e26f87c.gif" />
7+
<img src="../oops/../images/oops/../ajax-loader.4e26f87c.gif" />
88

99
<!-- Delimiters -->
1010
<img src="/images/ajax-loader.4e26f87c.gif" /><img src="/images/ajax-loader.4e26f87c.gif" />
1111

1212
<!-- Case insensitive -->
13-
<img src="/images/ajax-loader.4e26f87c.gif" />
13+
<img src="/IMAGES/ajax-loader.4e26f87c.gif" />
1414

1515
<!-- With query string and anchor -->
1616
<img src="/images/ajax-loader.4e26f87c.gif?a=b" />

0 commit comments

Comments
 (0)