Django Добавить в секунду Stati c URL файлов - PullRequest
0 голосов
/ 11 марта 2020

Я использую Django с шаблоном Bootstrap, для которого требуется Jquery. Но у меня проблемы с файлом js.

Я создал каталог stati c и каталог static_cdn .

Я использую шаблон Bootstrap 4.

Для шаблона моего проекта требуется файл js (шаблон не работает правильно без этого файла js) , но этот файл js не использует действительный URL; Он вызывает все мои SVG-файлы, , но с недействительным URL .


Это мой проект stati c папка файлов:

Project Static files


Это мой 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 может загрузить все в каталог stati c. А также все работает правильно.

Но, a js файл вызывает все мои svg файлы, и использует недействительный URL.

Это моя проблема c js file:

"{% stati c 'app-assets / vendors / js / vendors.min. js'%}"

Это мои ошибки:

Error with vendors.min.js

Вы можете увидеть поле ' initiator ', которое показывает кто вызывает файлы. Итак, все инициаторы ' red ' files '- это' vendor.min. js '.

Если вы посмотрите, проблема все в этом файле vendors.min. js. Django сначала загружает все правильно, но после загрузки этого файла js он вызывает все файлы svg с недействительным URL; так что браузер выдает ошибку 404. Не найдено.


Обычно все правильно так:

True Address

Django загружается все правильно, но эта vendors.min. js вызывает все файлы неправильно, поэтому Django не может их найти.

Я не смог найти, как изменить этот js файл, чтобы он вызывал действительный адрес, или добавить каталог URL 'app-assets' в Django.

Как я могу решить эту проблему?

Я думаю, что если я смогу добавить stati c url-путь, начинающийся непосредственно с '/ app-assets /', все будет работать. Но на данный момент не могу найти, как добавить второй путь * stati c url.

1 Ответ

0 голосов
/ 12 марта 2020

Решено.

Добавлен новый путь, который использует каталог, и решено.

Это новые настройки:

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 / статические / app-assets / шрифты / LivIconsEvo / svg /share.svg 'ссылки действительны сейчас.

...