Jquery 不是从静态文件加载
Jquery not loading from static files
这是我的项目结构:
pack
├── mysite
│ ├── blog
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── __init__.py
│ │ ├── migrations
│ │ ├── models.py
│ │ ├── __pycache__
│ │ ├── tests.py
│ │ └── views.py
│ ├── db.sqlite3
│ ├── manage.py
│ ├── mssql_app
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── forms_old.py
│ │ ├── forms.py
│ │ ├── __init__.py
│ │ ├── migrations
│ │ ├── models.py
│ │ ├── models.txt
│ │ ├── __pycache__
│ │ ├── routers.py
│ │ ├── templates
│ │ ├── tests.py
│ │ ├── urls.py
│ │ ├── views_old.py
│ │ └── views.py
│ ├── mysite
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ └── static
│ ├── admin
│ └── js
└── jquery-3.1.1.min.js
└── venv
在settings.py
中有:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'mysite/static')
]
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
我正尝试在 ~/pack/mysite/mssql_app/templates/base.html
中加载 jquery,如下所示:
{% load static %}<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<script src="{% static 'js/jquery-3.1.1.min.js' %}"></script>
<title>{% block title %}Packing{% endblock %}</title>
</head>
但是 python manage.py runserver
写道:
"GET /static/js/jquery-3.1.1.min.js HTTP/1.1" 404 1690
这里是~/pack/mysite/mysite/urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
urlpatterns = [
path('admin/', admin.site.urls),
url(r'', include('mssql_app.urls')),
]
和~/pack/mysite/mssql_app/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.show, name ='show'),
url(r'create', views.create, name ='create'),
url(r'save_pw', views.save_pw, name ='save_pw'),
]
我该如何解决?
来自@Lakshyaraj Dash 的解决方案有所帮助,但在使用 apache2
部署项目时 jquery
不起作用。是否有一些通用设置在部署后也能正常工作?或者部署应用程序时要执行哪些步骤(关于静态文件)?
在STATICFILES_DIRS记下
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static/')
]
保留一种配置 STATICFILES_DIRS 或 STATIC_ROOT。
只有debug为false时才能使用静态root
这是我的项目结构:
pack
├── mysite
│ ├── blog
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── __init__.py
│ │ ├── migrations
│ │ ├── models.py
│ │ ├── __pycache__
│ │ ├── tests.py
│ │ └── views.py
│ ├── db.sqlite3
│ ├── manage.py
│ ├── mssql_app
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── forms_old.py
│ │ ├── forms.py
│ │ ├── __init__.py
│ │ ├── migrations
│ │ ├── models.py
│ │ ├── models.txt
│ │ ├── __pycache__
│ │ ├── routers.py
│ │ ├── templates
│ │ ├── tests.py
│ │ ├── urls.py
│ │ ├── views_old.py
│ │ └── views.py
│ ├── mysite
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ └── static
│ ├── admin
│ └── js
└── jquery-3.1.1.min.js
└── venv
在settings.py
中有:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'mysite/static')
]
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
我正尝试在 ~/pack/mysite/mssql_app/templates/base.html
中加载 jquery,如下所示:
{% load static %}<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<script src="{% static 'js/jquery-3.1.1.min.js' %}"></script>
<title>{% block title %}Packing{% endblock %}</title>
</head>
但是 python manage.py runserver
写道:
"GET /static/js/jquery-3.1.1.min.js HTTP/1.1" 404 1690
这里是~/pack/mysite/mysite/urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
urlpatterns = [
path('admin/', admin.site.urls),
url(r'', include('mssql_app.urls')),
]
和~/pack/mysite/mssql_app/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.show, name ='show'),
url(r'create', views.create, name ='create'),
url(r'save_pw', views.save_pw, name ='save_pw'),
]
我该如何解决?
来自@Lakshyaraj Dash 的解决方案有所帮助,但在使用 apache2
部署项目时 jquery
不起作用。是否有一些通用设置在部署后也能正常工作?或者部署应用程序时要执行哪些步骤(关于静态文件)?
在STATICFILES_DIRS记下
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static/')
]
保留一种配置 STATICFILES_DIRS 或 STATIC_ROOT。
只有debug为false时才能使用静态root