Skip to content

Adding URL rewriting for scripts#64

Merged
timaschew merged 1 commit intomasterfrom
script-asset-path
Sep 13, 2014
Merged

Adding URL rewriting for scripts#64
timaschew merged 1 commit intomasterfrom
script-asset-path

Conversation

@dominicbarnes
Copy link
Contributor

I've been looking for a way for scripts to have access to the relative path for a given asset file. Right now, using things like clipboard-dom require you to set a path manually, and that means needing to keep up the source changes with version changes.

This change adds support for replacing a specific pattern with the url that would also be used for CSS url-rewriting. For example:

var path = /* component:file */ "asset.ext";
// becomes
var path = "user/component/version/asset.ext";

The asset path is resolved relative to the file it is found in. Also, the asset does not have to be in the component.json (at least we are not checking on that at this time)

For plugin authors that require some sort of URL for finding an asset via AJAX, they will still need to expose some sort of hook for developers/users to set the URL specific. (since JS has no notion of relative URLs like CSS does) However, this should make the end-result far more robust. For example:

var Clip = require("clipboard-dom");

// this
Clip.swf("/public/component/clipboard-dom/v0.0.5/ZeroClipboard.swf");
// would now be
Clip.swf("/public/" + Clip.swf());
// where Clip.swf() returns the URL rewritten by the builder

I've pushed a branch to clipboard-dom demonstrating this change. For non-component developers, nothing changes and this remains backwards compatible.

@jonathanong
Copy link
Contributor

LGTM

@timaschew timaschew merged commit d49eb24 into master Sep 13, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants