You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.3 KiB
36 lines
1.3 KiB
from django.conf import settings
|
|
from django.contrib.staticfiles.handlers import StaticFilesHandler
|
|
from django.core.management.commands.runserver import Command as RunserverCommand
|
|
|
|
|
|
class Command(RunserverCommand):
|
|
help = (
|
|
"Starts a lightweight web server for development and also serves static files."
|
|
)
|
|
|
|
def add_arguments(self, parser):
|
|
super().add_arguments(parser)
|
|
parser.add_argument(
|
|
"--nostatic",
|
|
action="store_false",
|
|
dest="use_static_handler",
|
|
help="Tells Django to NOT automatically serve static files at STATIC_URL.",
|
|
)
|
|
parser.add_argument(
|
|
"--insecure",
|
|
action="store_true",
|
|
dest="insecure_serving",
|
|
help="Allows serving static files even if DEBUG is False.",
|
|
)
|
|
|
|
def get_handler(self, *args, **options):
|
|
"""
|
|
Return the static files serving handler wrapping the default handler,
|
|
if static files should be served. Otherwise return the default handler.
|
|
"""
|
|
handler = super().get_handler(*args, **options)
|
|
use_static_handler = options["use_static_handler"]
|
|
insecure_serving = options["insecure_serving"]
|
|
if use_static_handler and (settings.DEBUG or insecure_serving):
|
|
return StaticFilesHandler(handler)
|
|
return handler
|
|
|