Внешний JS не загружается в liferay 7 GA4

Я добавил внешний JS в тему и портлет, но JS не загружает первую загрузку страницы.

Я использую код ниже:

 <script>
    Liferay.Loader.define._amd = Liferay.Loader.define.amd;
    Liferay.Loader.define.amd = false;
</script>
    <script src="${javascript_folder}/jquery.jscrollpane.min.js" />  
    <script src="${javascript_folder}/jquery.mousewheel.js" />  
    <script src="${javascript_folder}/common.js" /> 

<script>
    Liferay.Loader.define.amd = Liferay.Loader.define._amd;
</script>

Помогите мне, пожалуйста.


person Bhagwan Singh    schedule 14.11.2017    source источник
comment
Не могли бы вы предоставить несколько примеров кода?   -  person Miroslav Ligas    schedule 14.11.2017
comment
‹сценарий› Liferay.Loader.define._amd = Liferay.Loader.define.amd; Liferay.Loader.define.amd = ложь; ‹/script› ‹script src=${javascript_folder}/jquery.jscrollpane.min.js /› ‹script src=${javascript_folder}/jquery.mousewheel.js /› ‹script src=${javascript_folder}/common.js /› ‹script› Liferay.Loader.define.amd = Liferay.Loader.define._amd; ‹/скрипт›   -  person Bhagwan Singh    schedule 15.11.2017
comment
Где вы разместили фрагмент? В шапке или внизу страницы? А ресурсы подгружаются только после рефреша или воюет еще и при просмотре страниц?   -  person Miroslav Ligas    schedule 15.11.2017
comment
Попробуйте разместить внизу и в заголовке оба, ресурсы загружаются, когда я обновляю страницу или браузер.   -  person Bhagwan Singh    schedule 16.11.2017
comment
единственное, что приходит мне в голову, это то, что сеннайс мне мешает. Попробуйте отключить его и посмотрите, поможет ли это. Для этого есть настройка в конфигурации системы.   -  person Miroslav Ligas    schedule 24.11.2017


Ответы (1)


Согласно данной версии Liferay L7 GA4,

Следуй этим шагам:

Откройте панель управления, перейдите в «Конфигурация» → «Системные настройки».

Нажмите «Загрузчик JavaScript» на вкладке «Фундамент».

Снимите флажок с глобальной опции.

Справочная ссылка – https://help.liferay.com/hc/en-us/articles/360018161931-Using-External-Libraries-#using-libraries-that-you-host

Кроме того, есть альтернативное второе решение Liferay Version, которое я использовал L7.1 и L7.2.

Ниже кода я добавляю в свой модульный проект

@Component(immediate = true, service = DynamicInclude.class)
public class JSTopHeadDynamicInclude extends BaseDynamicInclude {

  @Override
    public void include(
            HttpServletRequest request, HttpServletResponse response,
            String key)
        throws IOException {

    PrintWriter printWriter = response.getWriter();

    String content = "<script src=\"/o/my-custom-dynamic-include/jquery.jscrollpane.min.js\" />";
    content += "<script src=\"/o/my-custom-dynamic-include/jquery.mousewheel.js\" />";
    content += "<script src=\"/o/my-custom-dynamic-include/common.js\" />";
    printWriter.println(content);
    }

    @Override
    public void register(
        DynamicInclude.DynamicIncludeRegistry dynamicIncludeRegistry) {

        dynamicIncludeRegistry.register(
      "/html/common/themes/top_js.jspf#resources"
    );
    }
}

Вы можете добавить эти js-файлы в местоположение вашего модуля OSGI, если папка «js» не существует, вы можете создать и добавить свои js-файлы.

**src/main/resource/META-INF/resources/js/**

Кроме того, вы должны зарегистрировать Web-ContextPath в файле BND.BND для модуля.

**Web-ContextPath: /my-custom-dynamic-include**

Справочная ссылка – https://help.liferay.com/hc/en-us/articles/360018165751-Top-JS-Dynamic-Include

Я использую второе решение. - Который работает нормально.

person Vishal Shah    schedule 08.05.2020