Deploying static files

    For an introduction to the use of , see.

    The basic outline of putting static files into production is simple: run thecollectstatic command when static files change, then arrange forthe collected static files directory () to be moved tothe static file server and served. Depending on STATICFILES_STORAGE,files may need to be moved to a new location manually or the methodof the Storage class might take care of that.

    Of course, as with all deployment tasks, the devil's in the details. Everyproduction setup will be a bit different, so you'll need to adapt the basicoutline to fit your needs. Below are a few common patterns that might help.

    • Push your code up to the deployment server.
    • On the server, run to copy all the static filesinto .

    Most larger Django sites use a separate Web server — i.e., one that's not alsorunning Django — for serving static files. This server often runs a differenttype of web server — faster but less full-featured. Some common choices are:

    • Nginx
    • A stripped-down version of
      Configuring these servers is out of scope of this document; check eachserver's respective documentation for instructions.

    Since your static file server won't be running Django, you'll need to modifythe deployment strategy to look something like:

    Another common tactic is to serve static files from a cloud storage providerlike Amazon's S3 and/or a CDN (content delivery network). This lets youignore the problems of serving static files and can often make forfaster-loading Web pages (especially when using a CDN).

    There's any number of ways you might do this, but if the provider has an API a will make theprocess incredibly simple. If you've written or are using a 3rd party customstorage backend, you can tell collectstatic to use it by setting to the storage engine.

    For example, if you've written an S3 storage backend inmyproject.storage.S3Storage you could use it with:

    Once that's done, all you have to do is run collectstatic and yourstatic files would be pushed through your storage package up to S3. If youlater needed to switch to a different storage provider, it could be as simpleas changing your setting.

    了解更多

    For complete details on all the settings, commands, template tags, and otherpieces included in , see thestaticfiles reference.