Требуется Js Путь и сценарий 404 - PullRequest
0 голосов
/ 29 апреля 2020

Что не так с кодом ниже

index. html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width= , initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <script data-main="js/config" src="require.js"></script>
        <script >
            require(['underscore'],function(_) {
                console.log('Underscore Js Loaded');  
            });
        </script>
    </body>
</html>  

js / config. js

require.config({
    baseUrl: 'js',
    paths:{
        module1:"module1" ,
        underscore:"underscore-min"        
    }
});

Я получаю 404 Сценарий не найдено и расположение сценария установлено на

"{{url}}"js/underscore.js

Ожидаемый URL должен быть

"{{url}}"js/underscore-min.js

Что-нибудь еще добавить в конфигурацию? что здесь не так?

1 Ответ

0 голосов
/ 02 мая 2020
  1. Вы загружаете require.js в браузере
  2. Требуется Js ищет скрипт с атрибутом data-main
  3. Сценарий найден, поэтому для него требуется js/config асинхронно
  4. Следующий скрипт пытается потребовать underscore module
  5. Require все еще загружает js/config, поэтому он еще не знает, что вы хотите сопоставить underscore с underscore-min
  6. Он пытается загрузить обычную underscore.js
  7. Не удается загрузить браузер, так как ответ от сервера - 404

В этом ваша проблема:)

Как это исправить?

Есть два решения.

Во-первых, требуется underscore через deps и callback в конфигурации:

require.config({
    baseUrl: 'js',
    paths:{
        module1:"module1" ,
        underscore:"underscore-min"        
    },
    deps: ['underscore'],
    callback: function (underscore) {
        console.log('Underscore Js Loaded');
    }
});

Во-вторых, встроить вашу конфигурацию в HTML:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width= , initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <script src="require.js"></script>
        <script>
            require.config({
                baseUrl: 'js',
                paths: {
                    module1:"module1" ,
                    underscore:"underscore-min"        
                }
            });
            require(['underscore'],function(_) {
                console.log('Underscore Js Loaded');  
            });
        </script>
    </body>
</html>  
...