Внешний js для серверной части magento 2 не загружен
Я создаю внешний js для серверной части magento 2 следующим образом:
Namespace/Module/view/adminhtml/requirejs-config.js
:
var config = {
map: {
'*': {
regionsForm: 'Namespace_Module/js/regions-form'
}
}
};
В Namespace/Module/view/adminhtml/web/js/regions-form.js
define([
'jquery',
'underscore',
'mage/url',
'jquery/ui'
], function ($, _,urlBuilder) {
'use strict';
$(function() {
console.log('a');
});
});
Я уже удалил pub/static и запустил setup:upgrade &static:содержимое, но когда я проверяю элемент в своем браузере, я не могу найти свой файл js, но в pub/static мой файл уже там.
Редактировать:
Я запустил команду развертывания php bin/magento setup:static-content:deploy
2 answers
Причина в том, что мы не вызвали пользовательский скрипт. Итак, мы можем назвать это через шаблон или через голову. Вы можете попробовать два случая:
1) Мы можем добавить прямо на голову.
app/code/Namespace/Module/view/adminhtml/layout/default.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<link src="Namespace_Module::js/regions-form.js"/>
</head>
<body/>
</page>
В этом случае не забудьте изменить define
на require
в пользовательском скрипте.
require([
'jquery',
'underscore',
'mage/url',
'jquery/ui'
], function ($, _,urlBuilder) {
'use strict';
console.log('Here');
return 1;
});
2) Мы можем вызвать его с помощью шаблона:
приложение/код/Компания/Модуль/просмотр/adminhtml/шаблоны/test.phtml
<script>
require(["regionsForm"], function($form){
//Your code here
})
</script>
Выполнение команд в этой последовательности может помочь вам:
sudo php bin/magento setup:upgrade
sudo chmod -R 777 var
sudo chmod -R 777 pub
sudo php bin/magento setup:static-content:deploy
sudo php bin/magento cache:flush
sudo php bin/magento cache:clean
sudo chmod -R 777 var
sudo chmod -R 777 pub
Это может сработать, если возникнут какие-либо проблемы, связанные с разрешениями.