Stolz / Assets

An ultra-simple-to-use assets management library for PHP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Serving Pipelined Asset through CDN

mrgauthier opened this issue · comments

I see that there's some debate on relative / absolute linking to the generated asset links using this package. For the most part I don't really take a side one way or the other. The tag allows you to get away with handling assets relative to the root URI of your application from subdirectories without much issue.

HOWEVER... I feel like if there was a config variable to specify whether or not there is to be some sort of prefix path to the relative link paths we could easily supply a CDN path for our Assets that are generated via Pipelines. Any thoughts on that?

commented

I don't mean to be harsh but I don't see how can be any debate about it as the HTML standard is pretty clear about how relative links work. Why should the library have an option for doing what HTML already can do?

Besides, is there anything wrong with the 'css_dir' and 'js_dir' options? They already let you prefix relative link paths with CDN urls. i.e

 'css_dir' => ($env == 'production') ? 'http://cdn.example.com/css' : 'css' 

I was just saying in this particular case, you may want to serve some of
your assets through the cdn and some through your own web server. Or even
chose between a couple different cdns. I guess just more fine grained
control. The HTML doesn't allow for that fine grained control I guess.

But yeah, if the 'css_dir' option works, than great!

-Matt

On Fri, Dec 19, 2014 at 7:14 AM, Stolz notifications@github.com wrote:

I don't mean to be harsh but I don't see how can be any debate about it as
the HTML standard is pretty clear about how relative links work. Why should
the library have an option for doing what HTML already can do?

Besides, is there anything wrong with the 'css_dir' and 'js_dir' options?
They already let you prefix relative link paths with CDN urls. i.e

'css_dir' => ($env == 'production') ? 'http://cdn.example.com/css' : 'css'


Reply to this email directly or view it on GitHub
#51 (comment).

From what I could see, the css_dir and js_dir options are also used for
writing the pipelined assets to disk. So in the case you wanted to have
your assets written locally, and then your CDN pull them locally I can't
seem to figure out how to make this work as you're suggesting.

-Matt

On Fri, Dec 19, 2014 at 10:56 AM, Matt Gauthier mr.mattyg@gmail.com wrote:

I was just saying in this particular case, you may want to serve some of
your assets through the cdn and some through your own web server. Or even
chose between a couple different cdns. I guess just more fine grained
control. The HTML doesn't allow for that fine grained control I guess.

But yeah, if the 'css_dir' option works, than great!

-Matt

On Fri, Dec 19, 2014 at 7:14 AM, Stolz notifications@github.com wrote:

I don't mean to be harsh but I don't see how can be any debate about it
as the HTML standard is pretty clear about how relative links work. Why
should the library have an option for doing what HTML already can do?

Besides, is there anything wrong with the 'css_dir' and 'js_dir' options?
They already let you prefix relative link paths with CDN urls. i.e

'css_dir' => ($env == 'production') ? 'http://cdn.example.com/css' : 'css'


Reply to this email directly or view it on GitHub
#51 (comment).

commented

To make it work to have to copy your assets to your CDN and the update your config to point to your CDN address. Were you talking about something different such the library copying the assets to your CDN server automatically?

commented

@mrgauthier , please take a look at the notify_command configuration option.

It accepts a closure that will be invoked every time new assets are pipelined. You can use it to hook to pipeline and upload your new assets to your CDN. Then you can load your CDN assets using their absolute URL.

commented

Please note last update has introduced the multitenancy feature of the library, which it may help you in that scenario.