gulp-angular-templatecache icon indicating copy to clipboard operation
gulp-angular-templatecache copied to clipboard

Question: Is it possible to make template urls relative?

Open tandrewnichols opened this issue 6 years ago • 8 comments

It's not clear to me from the docs how to do this (other than a custom function for transformUrl). I was very surprised this isn't the default, as that is the default for the grunt version of this plugin (I'm in the process of migrating some code from grunt to gulp).

Specifically, I would've expected something like:

$templateCache.put('template/foo.html', 'content')

but instead I'm getting

$templateCache.put('/template/foo.html', 'content')

tandrewnichols avatar Mar 22 '18 18:03 tandrewnichols

This issue is not there in gulp 3.9.1 From gulp 4.0.0 this is an issue

akash-pal avatar May 22 '18 15:05 akash-pal

This is because gulp 4 uses vinyl 2.0 which normalizes internal path records, breaking the url building logic. Here is the workaround I am using. I'm working on a PR to address this.

      transformUrl: function(url) {
        // Remove leading slash which occurs in gulp 4
        return url.replace(/^\/+/g, '');
      }

dmellstrom avatar Oct 28 '18 18:10 dmellstrom

Reopening due to breaking change with Gulp 3 after fixing this for Gulp 4 in 2.2.4. The code has since been reverted and 2.2.5 was published to reestablish status quo prior to this fix.

simonua avatar Nov 07 '18 14:11 simonua

The transformUrl solution does the job for now

adamreisnz avatar Nov 14 '18 06:11 adamreisnz

I'm working on getting access to a Mac so I can replicate and address the regression with 2.2.4 and find an alternative solution. In the meantime, we have transformUrl

dmellstrom avatar Nov 14 '18 14:11 dmellstrom

the first attempt workaround works find on unix base system however, my team mate here is running on Windows so guess what? Windows slash is diferente kkkk.

So here my workaround update:

				transformUrl: function(url) {
					// Remove leading slash which occurs in gulp 4
					// https://github.com/miickel/gulp-angular-templatecache/issues/153
					return url.replace(/^(\\|\/)+/g, '');
				}

betorobson avatar Nov 27 '18 19:11 betorobson

Depending on how this issue progresses, it might be worthwhile expanding the Readme for specific gulp and OS combinations. What are your thoughts?

simonua avatar Nov 27 '18 19:11 simonua

It's not clear to me from the docs how to do this (other than a custom function for transformUrl). I was very surprised this isn't the default, as that is the default for the grunt version of this plugin (I'm in the process of migrating some code from grunt to gulp).

Specifically, I would've expected something like:

$templateCache.put('template/foo.html', 'content')

but instead I'm getting

$templateCache.put('/template/foo.html', 'content')

i am also getting the same issue . Is there any work around for this to remove the Leading slash added to filenames

AshokKumarSharma avatar Oct 08 '20 09:10 AshokKumarSharma