A Gulp plugin to change asset paths from one environment to another.
Change paths of assets from one environment to another Works for anything included with href, src, or url attributes
var assetpaths = ;gulp;
the new domain
the old domain to replace if it was a full path. Anything that doesn't match this domain will be ignored so if you use CDNs for third party code those paths will not be changed.
this will anchor all relative paths to the document root of your project. An example would be in your css file you include
url(images/example.png) in a selector. All the directories up to the document root will be prepended to the images/example.png path giving you:
an array of custom attributes you want to replace the paths of
<img data-custom="/image.png" />
If this option is false, only paths to filetypes that are explicitly in the filetypes array will be replaced.
If true, it will attempt to replace paths to static assets in templates. These paths will be changed :
all image tags
all css background or background-image properties
all script tags
tags that have a href attribute with a download attribute in the same tag
<a href="<?php echo $myDownloadableThing; ?>" download="foo">
Array of filetypes to change the path for.
I used this to convert websites to start serving their static assets from a CDN.
NOTE: This plugin assumes that any paths in a database or other other data sources are relative to the root directory if you are using server side or client side templating. Full paths in the database will give you the wrong path.
/assets/images/image.png - OK
http://www.oldDomain.com/assets/images/image.png - FAIL
assets/images/image.png - FAIL
Again that is only for dynamically generated paths. All of those examples in code will be replaced correctly.