Applicaties moeten naast het afhandelen van dynamische verzoeken vaak ook statische bestanden leveren, zoals JavaScript, afbeeldingen en CSS. Apps in de flexibele omgeving kunnen statische bestanden aanbieden vanuit een Google Cloud-optie zoals Cloud Storage, ze rechtstreeks aanbieden of een extern content delivery network (CDN) gebruiken ## Bestanden aanbieden vanuit Cloud Storage Cloud Storage kan statische activa hosten voor dynamische web-apps. De voordelen van het gebruik van Cloud Storage in plaats van rechtstreeks vanuit uw app te dienen, zijn onder andere: - Cloud Storage werkt in wezen als een netwerk voor het leveren van inhoud. Hiervoor is geen speciale configuratie vereist, omdat elk leesbaar object standaard wordt gecached in het wereldwijde Cloud Storage-netwerk - De belasting van uw app wordt verminderd door statische activa te ontladen naar Cloud Storage. Afhankelijk van hoeveel statische activa u heeft en de frequentie van toegang, kan dit de kosten van het uitvoeren van uw app aanzienlijk verlagen - Bandbreedtekosten voor toegang tot inhoud kunnen vaak lager zijn met Cloud Storage U kunt uw middelen uploaden naar Cloud Storage met behulp van de gsutil-opdrachtregelprogramma of de Cloud Storage-API De Google Cloud Client Library biedt een idiomatische client voor Cloud Storage, voor het opslaan en ophalen van gegevens met Cloud Storage in een App Engine-app Voorbeeld van weergave vanuit een Cloud Storage-bucket Dit eenvoudige voorbeeld maakt een Cloud Storage-bucket en uploadt statische activa met Google Cloud CLI: Maak een emmer. Het is gebruikelijk, maar niet verplicht, om uw bucket de naam van uw project-ID te geven. De bucketnaam moet wereldwijd uniek zijn gsutil mb gsuw-bucket-naam>Stel de ACL in om leestoegang te verlenen aan items in de bucket gsutil defacl set public-read gsyour-bucket-name>Upload items naar de bucket. De rsynccommand is doorgaans de snelste en gemakkelijkste manier om middelen te uploaden en bij te werken. Je zou ook kunnen gebruiken kp gsutil -m rsync -r ./static gsuw-bucketnaam>/static U heeft nu toegang tot uw statische activa via httpsopslag.googleapis.com//static For more details on how to use Cloud Storage to serve static assets, including how to serve from a custom domain name, refer to How to Host a Static Website Serving files from other Google Cloud services You also have the option of using Cloud CDN or other Google Cloud storage services ## Serving files directly from your app Serving files from your app is typically straightforward, however, there are a couple drawbacks that you should consider: - Requests for static files can use resources that otherwise would be used for dynamic requests - Depending on your configuration, serving files from your app can result in response latency, which can also affect when new instances are created for handling the load Example of serving static files with your app Go In Go, you can use the standard http.FileServer or http.ServeFile to serve files directly from your app // Package static demonstrates a static file handler for App Engine flexible environment. package main import ( "fmt" "net/http" "google.golang.org/appengine" ) func main() { // Serve static files from "static" directory. http.Handlestatic http.FileServer(http.Dir http.HandleFunc homepageHandler) appengine.Main() } const homepage = doctype html> Static Files /main.css">

This is a static file serving examplep>

Static Files /styles.css">

This is a static file serving examplep>

default doctype html html(lang="en") head title Static Files meta(charset='utf-8') link(rel="stylesheet", hrefstatic/main.css") body p This is a static file serving example The stylesheet itself is located at ./public/css, which is served from /static/main.css body { font-family: Verdana, Helvetica, sans-serif; background-color: #CCCCFF; } Other Node.js frameworks, such as Hapi, Koa, and Sails typically support serving static files directly from the application. Refer to their documentation for details on how to configure and use static content PHP The PHP runtime runs nginx to serve your app, which is configured to serve static files in your project directory. You must declare the document root by specifying document_root in your app.yaml file: runtime: php env: flex runtime_config: document_root: web Python Most web frameworks include support for serving static files. In this sample, the app uses Flask's built-in ability to serve files in ./static directory from the /static URL The app includes a view that renders the template. Flask automatically serves everything in the ./static directory without additional configuration import logging from flask import Flask, render_template app = Flaskname @app.route def hello return render_template('index.html') @app.errorhandler(500) def server_error(e): logging.exception('An error occurred during a request returnAn internal error occurred: See logs for full stacktrace. format(e), 500 if __name__ == main # This is used when running locally. Gunicorn is used to run the # application on Google App Engine. See entrypoint in app.yaml. app.run(host='127.0.0.1', port=8080, debug=True) The template rendered by the view includes a stylesheet located at /static/main.css Static FilesFlask automatically makes files in the 'static' directory available via '/static'./main.css">

This is a static file serving examplep>

doctype html html head title Serving Static Files link rel="stylesheet" hrefapplication.css" script srcapplication.js" body p This is a static file serving example The stylesheet is located at ./public/application.css which is served from /application.css body { font-family: Verdana, Helvetica, sans-serif; background-color: #CCCCFF; } Ruby on Rails The Ruby on Rails web framework serves files from the ./public directory by default. Static JavaScript and CSS files can also be generated by the Rails asset pipeline This example app has a layout view that includes all the app's stylesheets: doctype html html head title Serving Static Files = stylesheet_link_tag "application", media: "all" = javascript_include_tag "application" = csrf_meta_tags body = yield The stylesheet itself is a Sass file located at ./app/assets/stylesheets/main.css.sass body font-family: Verdana, Helvetica, sans-serif background-color: #CCCCFF By default, Rails apps do not generate or serve static assets when running in production The Ruby runtime executes rake assets:precompile during deployment to generate static assets and sets the RAILS_SERVE_STATIC_FILES environment variable to enable static file serving in production .NET Hello Static World

This is a static html documentp>