Giter Club home page Giter Club logo

Comments (9)

Miserlou avatar Miserlou commented on August 17, 2024 2

That's fantastic, thanks for sharing! I look forward to experimenting with this myself.

WhiteNoise looks like it satisfies a number of requirements that I have, so once I try it out I hope to add it to the official Zappa documentation.

If you'd be so kind, I'd love it if you could see if it is obeying the caching headers like you say it should. If not, then perhaps there is something more that we could do to help with that.

from zappa.

collingreen avatar collingreen commented on August 17, 2024

Both of these are great suggestions and wouldn't be terrible to implement.

from zappa.

Miserlou avatar Miserlou commented on August 17, 2024

Thanks for the comment Shakna!

Excludes are already in place, but it looks like it wasn't documented. Fixing that now - but you just add the patterns to exclude in "exclude": [".tar.gz", ".pem"] or whatever. Adding to README now..

Pre build script is a good one, I've wanted that as well. Can you describe your use case for that?

from zappa.

Miserlou avatar Miserlou commented on August 17, 2024

Okay, there is now support for a "prebuild_script" setting in the latest master.

from zappa.

shakna-israel avatar shakna-israel commented on August 17, 2024

@Miserlou Awesome. (For me, the prebuild was mostly minifying css, precompiling CoffeeScript and the like).

from zappa.

Miserlou avatar Miserlou commented on August 17, 2024

Ah, that makes total sense.

How are you serving up your static assets? YESTERDAY, API Gateway finally got the feature we need to serve binary data through it, but it's not a great practice and you should really use a CDN or something like that.

from zappa.

shakna-israel avatar shakna-israel commented on August 17, 2024

Whitenoise, but I only use it for text assets, like CSS and JS.

from zappa.

Miserlou avatar Miserlou commented on August 17, 2024

Oh wow, now that's really interesting! I've never seen that before.

Describing how to best handle static files is still an open and pressing matter for Zappa, so I'd love to know more about your setup!

If you don't mind, can you describe your setup in a bit more details? For example, are you using Django or Flask? Have you put Whitenoise on Lambda, or is that running on a dedicated machine somewhere?

from zappa.

shakna-israel avatar shakna-israel commented on August 17, 2024

Sure thing.

I'm using Flask for now, and wrapping it with Whitenoise before hitting it on Lambda.

So, the application that Zappa serves looks like:

import whitenoise
import routing

flaskApp = routing.app
app = whitenoise.WhiteNoise(flaskApp, root='/static')

I then have CloudFlare acting as a CDN around the site.

Since the only images I've used thus far are SVGs, and CSS shapes, I don't need to worry about binary formats and being served the wrong way.

That being said, Whitenoise should be enough to do it, if behind a CDN. So long as a user is using a CDN, then how they serve their files should be easy and simple, and fast.

That being said, I'm still getting used to Lambda, and haven't inspected to see if it obeys caching headers properly, or, like S3, completely fails to use gzip or the like.

from zappa.

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.