vue js - custom server

Поддержка
  • Как правильно прицепить custom server к spa на vue?
    делаю так

    mounted () {
        const cf = document.createElement("script");
        cf.setAttribute(
            "src",
            "//customfingerprints.bablosoft.com/clientsafe.js"
        );
    window.addEventListener("load", function(){ProcessFingerprint(.......)
    

    скрипт грузится, но addEventListener вперед срабатывает, в результате ошибка и не работает

    Uncaught ReferenceError: ProcessFingerprint is not defined
    
  • @olegar Зачем вы это делаете? Просто подключите скрипт на страницу.

  • spa - там нет страницы... Весь сайт - один скрипт

  • @olegar said in vue js - custom server:

    spa - там нет страницы... Весь сайт - один скрипт

    Вам бы изучить фронтенд разработку, прежде чем лезть в это. Я знаю что такое SPA и Vue. Скрипт по вашему подключается прямо в браузер? А когда вы вводите адрес сайта в адресную строку браузера, что происходит?

    Происходит get запрос, который возвращает html страницу на которой как раз ваш скрипт со SPA и подключен, некто не мешает вам подключить в ней же другие скрипты. Более того, очень странно пихать сторонний скрипт, который никак не связан с вашим приложением в его код.

  • Я в курсе, из всех файлов там один index.html, и тот при каждом билде перезаписывается.
    В этом файле отродясь нет никаких скриптов, он служит только для того что бы запустить основной скрипт

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8">
        <link rel="icon" href="/favicon.ico">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Vite App</title>
        <script type="module" crossorigin src="/assets/index-6ea48c4c.js"></script>
        <link rel="stylesheet" href="/assets/index-e1a495ea.css">
      </head>
      <body>
        <div id="app"></div>
        
      </body>
    </html>
    

    вот это

    <script type="module" crossorigin src="/assets/index-6ea48c4c.js"></script>
    <link rel="stylesheet" href="/assets/index-e1a495ea.css">
    

    основной скрипт и файл стилей сайта, и обратите внимание на это - "-6ea48c4c" и "-e1a495ea" , это ни что иное как хеш для сброса кеша, при каждом билде все хеши меняются дабы сбросить кеш в браузерах где был открыт предыдущий билд.
    Как вы можете догадаться что бы внести такие изменения index переписывается.
    Так что вы сами поинтересуйтесь как это работает.
    А сторонние скрипты в vue так и подключаются, так и никак иначе

  • @olegar said in vue js - custom server:

    Так что вы сами поинтересуйтесь как это работает.
    А сторонние скрипты в vue так и подключаются, так и никак иначе

    Я как раз умею пользоваться webpack xD

  • ну так и как же подключть custom server?

  • @olegar said in vue js - custom server:

    ну так и как же подключть custom server?

    Ваш вопрос не касается БАС. Так же как и подключить любой скрипт, например гугл аналитику.

  • Как раз касается, да даже если и ни касается, я ничего не утверждаю, я СПРАШИВАЮ КАК ПОДКЛЮЧИТЬ....
    Не пойму чем простой вопрос вызвал такую бурю негодований....
    Просто подключить скрипт, нет проблем, он подключается. А вот как повесить addEventListener .... Он подвешивается, но раньше чем успевает загрузиться скрипт, соответственно не находит ProcessFingerprint(.......) и на этом все

  • @olegar в шаблон в внутри тегов body, хоть вначале, хоть вконце вставь код который тебе админка дала.

  • Bigma, прочти чуть выше, что бы не переписывать второй раз

  • @olegar said in vue js - custom server:

    Как раз касается, да даже если и ни касается, я ничего не утверждаю, я СПРАШИВАЮ КАК ПОДКЛЮЧИТЬ....
    Не пойму чем простой вопрос вызвал такую бурю негодований....
    Просто подключить скрипт, нет проблем, он подключается. А вот как повесить addEventListener .... Он подвешивается, но раньше чем успевает загрузиться скрипт, соответственно не находит ProcessFingerprint(.......) и на этом все

    Да потому что я вам сказал, что вы делаете не правильно, но вы упераетесь. Я не собираюсь помогать городить костыли, может кто-то другой поможет.

    В конце концов, можно просто импортировать скрипт где-то в вашем app.js, сборщик его и так добавит в ваш билд.

  • Бл, да нельзя ничего в index.html писать..... Этот файл при каждом билде перезаписывается! Он не для этого!

  • @olegar said in vue js - custom server:

    Бл, да нельзя ничего в index.html писать..... Этот файл при каждом билде перезаписывается! Он не для этого!

    Ну а сборку вы настраивать видимо не научились..

    Можете просто импортировать скаченный файл скрипта в коде вашего приложения если так сильно хочется

  • @olegar а системы шаблонизации там нет? Блок какой нить из админки на крайняк, суть в том, что это должно быть внутри боди.

  • Он как раз и стоит в app.js сборщик все добавляет, но ... Не хочу все по кругу переписывать

  • Да кудауж мне научится, от сохи, уж пдскажите как надо

  • Мне ничего не хочится, а спроси у тех кто в теме, как правильно сделать

  • @olegar said in vue js - custom server:

    Бл, да нельзя ничего в index.html писать..... Этот файл при каждом билде перезаписывается! Он не для этого!

    Такого быть не должно, есть файл index.html который обычно лежит в /src и служит вроде точки входа, там подключаются скрипты, стили и тд. А уже после билда файл index.html вместе с остальной сборкой попадает в папку /build и уже в нем есть хэши для кэширования и вот его править конечно не нужно, нужно править файл который лежит в /src

  • не должно, нету, и не бывает
    Screenshot_2023-02-25_19-30-26.png
    Screenshot_2023-02-25_19-32-31.png