Загрузка ресурса в файле app.js Symfony 4 - PullRequest
0 голосов
/ 23 сентября 2019

Я рассчитываю на активацию загрузки определенного ресурса в app.js

Мои ресурсы создаются следующим образом: public/build/images/icons/**.svg

В моем файле app.js есть следующее:

/*
* Welcome to your app's main JavaScript file!
 *
 * We recommend including the built version of this JavaScript file
 * (and its CSS file) in your base layout (base.html.twig).
 */

// any CSS you require will output into a single css file (app.css in this case)
import '../sass/standards.scss';

// Need jQuery? Install it with "yarn add jquery", then uncomment to require it.
const $ = require('jquery');

$(window).on("load", function() {
    $(".icon").each(function(){
        var $classes = $(this).prop("classList");

        var className;

        $.each($classes, function(){
            if(this.match("^icon-"))
            {
                className = this;
                return;
            }
        });

        className = String(className);
        var fileName = className.replace("icon-", "") + ".svg";

        $(this).load("public/build/images/icons/" + fileName);
    })
});

Идея состоит в том, чтобы найти любой элемент .icon и вставить его с соответствующим файлом SVG, который у меня есть в папке ресурсов.Но проблема в том, что происходит кеширование, поэтому имена файлов меняются для контроля версий.Это правильный способ вызова ресурса через файл app.js?

Как правильно?

1 Ответ

1 голос
/ 23 сентября 2019

Вам необходимо require файл перед его использованием. Документы .

// assets/js/app.js

// returns the final, public path to this file
// path is relative to this file - e.g. assets/images/logo.png
const logoPath = require('../images/logo.png');

var html = `<img src="${logoPath}">`;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...