Django 添加 Scond 静态文件 URL
Django Add Scond Static Files URL
我正在使用带有 Bootstrap 模板的 Django,它需要 Jquery。但是我在处理 js 文件时遇到了问题。
我创建了 static 目录和 static_cdn 目录。
我正在使用 Bootstrap 4 模板。
我的项目模板需要一个 js 文件(没有这个 js 文件模板不能正常工作)但是这个 js 文件没有使用有效的 url;它正在调用我所有的 svg 文件,但带有无效的 URL。
这是我的项目静态文件夹:
这是我的 urls.py urls :
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^panel/$', panelView, name='panel'),
url(r'^pageOne/$', pageOne, name='pageOne'),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这是我的 settings.py :
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(os.path.dirname(BASE_DIR), "static"),
# '/var/www/static/',
]
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_cdn")
MEDIA_URL = '/evrak/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "evrak")
这是我的 html 页面:
<!-- BEGIN: Vendor JS-->
<script src="{% static 'app-assets/vendors/js/vendors.min.js' %}"></script>
<script src="{% static 'app-assets/fonts/LivIconsEvo/js/LivIconsEvo.tools.js' %}"></script>
<script src="{% static 'app-assets/fonts/LivIconsEvo/js/LivIconsEvo.defaults.js' %}"></script>
<script src="{% static 'app-assets/fonts/LivIconsEvo/js/LivIconsEvo.min.js' %}"></script>
{% block vendorJS %}
{% endblock vendorJS %}
<!-- END Vendor JS-->
<!-- BEGIN: Page Vendor JS-->
{% block pageVendorJS %}
{% endblock pageVendorJS %}
<!-- END: Page Vendor JS-->
现在,
Django 能够加载 static 目录中的所有内容。而且一切都正常工作。
但是, 一个 js 文件正在调用我所有的 svg 文件,它使用的是无效的 url.
这是我有问题的 js 文件:
"{% static 'app-assets/vendors/js/vendors.min.js' %}"
这是我的错误:
您可以看到“initiator”字段显示谁在调用文件。
所以,所有'red'文件的发起者都是'vendor.min.js'。
如果你看,问题就出在这个 'vendors.min.js' 文件上。 Django 首先正确加载所有内容,但在加载此 js 文件后,它会调用所有带有无效 url 的 svg 文件;所以浏览器抛出 404 not found 错误。
通常情况下一切都是正确的:
Django 正在正确加载所有内容,但是这个 vendors.min.js 以错误的方式调用所有文件,因此 Django 无法找到它们。
我找不到如何更改此 js 文件以调用有效地址,或将 'app-assets' url 目录添加到 Django。
我该如何解决这个问题?
我想,如果我可以添加一个静态的 url 路径直接以 '/app-assets/' 开头,一切都会奏效。但目前找不到,如何添加第二个静态 url 路径。
已解决。
添加了一个使用目录的新路径,并解决了。
这是新设置:
STATIC_URL = '/static/'
STATIC_URL2 = '/app-assets/'
STATICFILES_DIRS = [
os.path.join(os.path.dirname(BASE_DIR), "static"),
# '/var/www/static/',
]
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_cdn")
STATIC_ROOT2 = os.path.join(os.path.dirname(BASE_DIR), "static_cdn/app-assets")
MEDIA_URL = '/evrak/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "evrak")
这是新的 urls.py :
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^panel/$', panelView, name='panel'),
url(r'^pageOne/$', pageOne, name='pageOne'),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.STATIC_URL2, document_root=settings.STATIC_ROOT2)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
现在,一切正常。
两个都
'http://127.0.0.1:8000/app-assets/fonts/LivIconsEvo/svg/share.svg'
和
'http://127.0.0.1:8000/static/app-assets/fonts/LivIconsEvo/svg/share.svg'
链接现在有效。
我正在使用带有 Bootstrap 模板的 Django,它需要 Jquery。但是我在处理 js 文件时遇到了问题。
我创建了 static 目录和 static_cdn 目录。
我正在使用 Bootstrap 4 模板。
我的项目模板需要一个 js 文件(没有这个 js 文件模板不能正常工作)但是这个 js 文件没有使用有效的 url;它正在调用我所有的 svg 文件,但带有无效的 URL。
这是我的项目静态文件夹:
这是我的 urls.py urls :
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^panel/$', panelView, name='panel'),
url(r'^pageOne/$', pageOne, name='pageOne'),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这是我的 settings.py :
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(os.path.dirname(BASE_DIR), "static"),
# '/var/www/static/',
]
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_cdn")
MEDIA_URL = '/evrak/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "evrak")
这是我的 html 页面:
<!-- BEGIN: Vendor JS-->
<script src="{% static 'app-assets/vendors/js/vendors.min.js' %}"></script>
<script src="{% static 'app-assets/fonts/LivIconsEvo/js/LivIconsEvo.tools.js' %}"></script>
<script src="{% static 'app-assets/fonts/LivIconsEvo/js/LivIconsEvo.defaults.js' %}"></script>
<script src="{% static 'app-assets/fonts/LivIconsEvo/js/LivIconsEvo.min.js' %}"></script>
{% block vendorJS %}
{% endblock vendorJS %}
<!-- END Vendor JS-->
<!-- BEGIN: Page Vendor JS-->
{% block pageVendorJS %}
{% endblock pageVendorJS %}
<!-- END: Page Vendor JS-->
现在, Django 能够加载 static 目录中的所有内容。而且一切都正常工作。
但是, 一个 js 文件正在调用我所有的 svg 文件,它使用的是无效的 url.
这是我有问题的 js 文件:
"{% static 'app-assets/vendors/js/vendors.min.js' %}"
这是我的错误:
您可以看到“initiator”字段显示谁在调用文件。 所以,所有'red'文件的发起者都是'vendor.min.js'。
如果你看,问题就出在这个 'vendors.min.js' 文件上。 Django 首先正确加载所有内容,但在加载此 js 文件后,它会调用所有带有无效 url 的 svg 文件;所以浏览器抛出 404 not found 错误。
通常情况下一切都是正确的:
Django 正在正确加载所有内容,但是这个 vendors.min.js 以错误的方式调用所有文件,因此 Django 无法找到它们。
我找不到如何更改此 js 文件以调用有效地址,或将 'app-assets' url 目录添加到 Django。
我该如何解决这个问题?
我想,如果我可以添加一个静态的 url 路径直接以 '/app-assets/' 开头,一切都会奏效。但目前找不到,如何添加第二个静态 url 路径。
已解决。
添加了一个使用目录的新路径,并解决了。
这是新设置:
STATIC_URL = '/static/'
STATIC_URL2 = '/app-assets/'
STATICFILES_DIRS = [
os.path.join(os.path.dirname(BASE_DIR), "static"),
# '/var/www/static/',
]
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_cdn")
STATIC_ROOT2 = os.path.join(os.path.dirname(BASE_DIR), "static_cdn/app-assets")
MEDIA_URL = '/evrak/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "evrak")
这是新的 urls.py :
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^panel/$', panelView, name='panel'),
url(r'^pageOne/$', pageOne, name='pageOne'),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.STATIC_URL2, document_root=settings.STATIC_ROOT2)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
现在,一切正常。 两个都 'http://127.0.0.1:8000/app-assets/fonts/LivIconsEvo/svg/share.svg' 和 'http://127.0.0.1:8000/static/app-assets/fonts/LivIconsEvo/svg/share.svg' 链接现在有效。