Naveen
Naveen

Reputation: 677

Django Settings for Rendering static images from Google Cloud storage

I have my Django App hosted on Google Compute Engine. I wish to render static elements of the App from Google Cloud Storage. I have all the static elements inside Google Cloud storage bucket www.example.com/static

My Settings.py:

# Static files (CSS, JavaScript, Images)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, '../example_static')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, '../example_media')
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'), MEDIA_ROOT,)

000-default.conf File:

<VirtualHost *:80>
    .....
    DocumentRoot /var/www/html

    Alias /static /opt/projects/example-google/example_static
    ....
</VirtualHost>

With Current settings, it is picking up the static files from path: /opt/projects/example-google/example_static.

Can someone please explain the settings change required for rendering all the static images from Google Cloud storage bucket www.example.com/static ?

Thanks,

Upvotes: 4

Views: 1288

Answers (2)

Yarh
Yarh

Reputation: 1098

You can find some documentation here

One more thing i found useful is automatically switching between dev and prod environments by doing to following changes in your app settings.py:

if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'):
    STATIC_URL = 'https://storage.googleapis.com/<your-bucket>/static/'
else:
    STATIC_URL = '/static/'

Upvotes: 4

Nathan Herring
Nathan Herring

Reputation: 977

While this isn't a Django-based answer, since I know little about that, you may find the Alpha release of Google Cloud Load Balancer support for Google Cloud Storage another route to provide URL maps to static content in GCS while serving the rest of your data on GCE.

Upvotes: 1

Related Questions