Code Monkey home page Code Monkey logo

Comments (8)

niftylettuce avatar niftylettuce commented on August 29, 2024

Do you suggest using Git's integrated hash?

from express-cdn.

andrewdeandrade avatar andrewdeandrade commented on August 29, 2024

The approach I used on my fork is simply to perform something like this:

var hash = crypto.createHash("md5");

// ...
for (var b=0; b<assets.length; b+=1) {
  // ...
  hash = hash.update(fs.readFileSync(path.join(options.publicDir, assets[b])));
  // ...
}
// ...
return createTag(src, "/" + name, attributes) + "\n";

The problem with this approach at the moment is that it is computationally intensive and time consuming to generate an MD5 digest of a bunch of files every time you want to generate an HTML tag. I'm guessing that the best approach is to generate the MD5 digest only once and cache it in memory.

Here is my commit with this naive implementation:
andrewdeandrade@3e2744a

I'm going to contact bminer and check if he'd be interested in modularizing his node-static-assets module to separate the express middleware from the cache strategies.

Tell me more about what you had in mind regarding the git integrated hash approach. I'm not sure I understand. Do you have a link to an implementation?

from express-cdn.

andrewdeandrade avatar andrewdeandrade commented on August 29, 2024

Nick, here's a naïve implementation.

https://github.com/malandrew/express-cdn

It's not production ready as I need to go ahead and modify the middleware part so it caches values and doesn't recalculate on every server request. Any ideas on how you'd go about implementing that caching?

Once I figure out how best to implement this, I want to go ahead and add this to the less-middleware module since it's also got the mtime achille's heel that is the source of edgecase bugs.

from express-cdn.

niftylettuce avatar niftylettuce commented on August 29, 2024

Andrew,

Sorry for delay -- been working hard on my startup -- if you do a pull
request I have no problem looking it over!

Someone integrated CSS for url(...) attribute in the newest version of
express-cdn v0.0.6 -- check it out.

It needs the appended mtime to the image though, might you look into that?
That was one of the lazyweb requests.

On Tue, Sep 11, 2012 at 12:44 AM, Andrew de Andrade <
[email protected]> wrote:

Nick, here's a naïve implementation.

https://github.com/malandrew/express-cdn

It's not production ready as I need to go ahead and modify the middleware
part so it caches values and doesn't recalculate on every server request.
Any ideas on how you'd go about implementing that caching?

Once I figure out how best to implement this, I want to go ahead and add
this to the less-middleware module since it's also got the mtime achille's
heel that is the source of edgecase bugs.


Reply to this email directly or view it on GitHubhttps://github.com//issues/16#issuecomment-8446953.

from express-cdn.

grydstedt avatar grydstedt commented on August 29, 2024

Andrew, couldn't you set once:true on the middleware to only have it generate the compiled css once? I believe the problem is that express-cdn goes straight to disk to find the css files without requesting it through the middleware, no?

from express-cdn.

niftylettuce avatar niftylettuce commented on August 29, 2024

@grydstedt for CSS we do a GET request https://github.com/niftylettuce/express-cdn/blob/master/lib/main.js#L279 -- if that answers your question? /cc @malandrew

from express-cdn.

niftylettuce avatar niftylettuce commented on August 29, 2024

we should take care of this issue, timestamps aren't too cool right now. @grydstedt did you have any ?'s about how CSS gets requested or anything?

from express-cdn.

niftylettuce avatar niftylettuce commented on August 29, 2024

adding to lazyweb requests in the readme, I think git sha might be better/easier

from express-cdn.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.