Bird
Raised Fist0
Djangoframework~5 mins

STATIC_URL and STATICFILES_DIRS in Django - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is STATIC_URL used for in Django?

STATIC_URL is the URL prefix used to serve static files like CSS, JavaScript, and images in a Django project. It tells the browser where to find these files.

Click to reveal answer
beginner
What does STATICFILES_DIRS do in Django settings?

STATICFILES_DIRS is a list of folders where Django looks for additional static files during development, besides the static folders inside each app.

Click to reveal answer
intermediate
How do STATIC_URL and STATICFILES_DIRS work together?

STATICFILES_DIRS tells Django where to find static files on your computer, and STATIC_URL tells the browser the URL path to access those files.

Click to reveal answer
beginner
Why should STATIC_URL usually end with a slash (/)?

Ending STATIC_URL with a slash ensures URLs for static files are formed correctly, like /static/css/style.css, avoiding broken links.

Click to reveal answer
beginner
Where do you typically set STATIC_URL and STATICFILES_DIRS in a Django project?

Both are set in the settings.py file of your Django project to configure static file handling.

Click to reveal answer
What type of value is STATIC_URL in Django settings?
AA list of directories
BA Python function
CA boolean flag
DA URL path string
Which setting tells Django where to find extra static files on your computer?
ASTATIC_URL
BSTATICFILES_DIRS
CMEDIA_ROOT
DINSTALLED_APPS
If you want your static files to be served at /assets/, what should STATIC_URL be set to?
A"/assets/"
B"assets/"
C"/assets"
D"assets"
Where do you configure STATIC_URL and STATICFILES_DIRS?
Aurls.py
Bviews.py
Csettings.py
Dmodels.py
Which of these is NOT a purpose of STATICFILES_DIRS?
ATo define the URL prefix for static files
BTo tell Django where to collect static files
CTo help during development to find static files
DTo list extra folders with static files
Explain in your own words what STATIC_URL and STATICFILES_DIRS do in a Django project.
Think about how the browser finds static files and where Django looks for them on your computer.
You got /3 concepts.
    Describe how you would set up static files in a Django project using STATIC_URL and STATICFILES_DIRS.
    Imagine telling Django where your static files live and how users can access them.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the purpose of STATIC_URL in a Django project?
      easy
      A. It sets the database connection string for static files.
      B. It defines the URL prefix to access static files in the browser.
      C. It lists the directories where static files are stored on disk.
      D. It configures the caching behavior for static files.

      Solution

      1. Step 1: Understand STATIC_URL role

        STATIC_URL is used to tell Django what URL prefix to use when serving static files like images or CSS.
      2. Step 2: Differentiate from STATICFILES_DIRS

        STATICFILES_DIRS lists folders on disk, not URLs. The other options are unrelated to URL prefix.
      3. Final Answer:

        It defines the URL prefix to access static files in the browser. -> Option B
      4. Quick Check:

        STATIC_URL = URL prefix [OK]
      Hint: STATIC_URL is the web address prefix for static files [OK]
      Common Mistakes:
      • Confusing STATIC_URL with STATICFILES_DIRS
      • Thinking STATIC_URL sets file system paths
      • Assuming STATIC_URL controls caching
      2. Which of the following is the correct way to define STATICFILES_DIRS in Django settings?
      easy
      A. STATICFILES_DIRS = 'staticfiles'
      B. STATICFILES_DIRS = '/static/'
      C. STATICFILES_DIRS = [BASE_DIR / 'static']
      D. STATICFILES_DIRS = {'static': BASE_DIR}

      Solution

      1. Step 1: Recognize STATICFILES_DIRS type

        It must be a list or tuple of folder paths, not a string or dict.
      2. Step 2: Check syntax correctness

        STATICFILES_DIRS = [BASE_DIR / 'static'] uses a list with a path expression (BASE_DIR / 'static'), which is correct syntax in modern Django.
      3. Final Answer:

        STATICFILES_DIRS = [BASE_DIR / 'static'] -> Option C
      4. Quick Check:

        STATICFILES_DIRS is a list of folders [OK]
      Hint: STATICFILES_DIRS must be a list of folder paths [OK]
      Common Mistakes:
      • Using a string instead of a list
      • Using a dictionary instead of a list
      • Forgetting to use BASE_DIR or full path
      3. Given the settings:
      STATIC_URL = '/assets/'
      STATICFILES_DIRS = [BASE_DIR / 'assets']

      What URL will Django use to serve a file named logo.png located inside the assets folder?
      medium
      A. /static/logo.png
      B. /static/assets/logo.png
      C. /assets/assets/logo.png
      D. /assets/logo.png

      Solution

      1. Step 1: Understand STATIC_URL usage

        STATIC_URL sets the URL prefix for static files. Here it is '/assets/'.
      2. Step 2: Map file location to URL

        The file 'logo.png' inside the 'assets' folder will be served at '/assets/logo.png' because STATICFILES_DIRS points to that folder.
      3. Final Answer:

        /assets/logo.png -> Option D
      4. Quick Check:

        URL = STATIC_URL + filename [OK]
      Hint: URL = STATIC_URL + filename path [OK]
      Common Mistakes:
      • Adding folder name twice in URL
      • Using default '/static/' URL instead of custom
      • Confusing file system path with URL path
      4. You set STATICFILES_DIRS = BASE_DIR / 'static' without brackets in Django settings. What error will occur?
      medium
      A. TypeError because STATICFILES_DIRS must be a list or tuple
      B. No error, it works fine
      C. SyntaxError due to missing quotes
      D. FileNotFoundError at runtime

      Solution

      1. Step 1: Check STATICFILES_DIRS expected type

        It must be a list or tuple of paths, not a single path object.
      2. Step 2: Analyze given assignment

        Assigning a single path without brackets makes it a path object, not a list, causing a TypeError.
      3. Final Answer:

        TypeError because STATICFILES_DIRS must be a list or tuple -> Option A
      4. Quick Check:

        STATICFILES_DIRS needs list/tuple [OK]
      Hint: Always wrap STATICFILES_DIRS paths in a list or tuple [OK]
      Common Mistakes:
      • Forgetting brackets around STATICFILES_DIRS paths
      • Assuming single path is accepted
      • Confusing syntax error with runtime error
      5. You want to serve static files from two folders: assets and common_static inside your project. How should you configure STATICFILES_DIRS and STATIC_URL to serve files correctly under the URL prefix /static/?
      hard
      A. STATIC_URL = '/static/' STATICFILES_DIRS = [BASE_DIR / 'assets', BASE_DIR / 'common_static']
      B. STATIC_URL = '/assets/' STATICFILES_DIRS = [BASE_DIR / 'static', BASE_DIR / 'common_static']
      C. STATIC_URL = '/static/' STATICFILES_DIRS = BASE_DIR / 'assets' + BASE_DIR / 'common_static'
      D. STATIC_URL = '/common_static/' STATICFILES_DIRS = [BASE_DIR / 'assets']

      Solution

      1. Step 1: Set STATIC_URL to desired URL prefix

        To serve all static files under '/static/', set STATIC_URL = '/static/'.
      2. Step 2: List all static folders in STATICFILES_DIRS

        Include both folders as a list: [BASE_DIR / 'assets', BASE_DIR / 'common_static'] so Django finds files in both.
      3. Step 3: Avoid incorrect concatenation or mismatched URLs

        Concatenating paths or mismatching URL prefixes causes errors or missing files.
      4. Final Answer:

        STATIC_URL = '/static/' STATICFILES_DIRS = [BASE_DIR / 'assets', BASE_DIR / 'common_static'] -> Option A
      5. Quick Check:

        Multiple folders in list, one URL prefix [OK]
      Hint: Use list for multiple folders, one STATIC_URL prefix [OK]
      Common Mistakes:
      • Concatenating paths instead of listing them
      • Using different URL prefixes for folders
      • Forgetting to include all folders in list
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard