main.js в requirejs не загружается после перенаправления - PullRequest
0 голосов
/ 07 января 2019

Я использую MVC с .NET.

Requirejs прекрасно загружается на домашней странице моего приложения (URL-адрес http://localhost:62124). Я добавил кнопку для перенаправления пользователей на другую страницу, которая имеет форму. URL после перенаправления - http://localhost:62124/Users/RedirectToSignUp Я получаю эти сообщения об ошибках в консоли

http://localhost:62124/Users/Scripts/main.js net::ERR_ABORTED 404 (Not Found)

Uncaught Error: Script error for "main"
https://requirejs.org/docs/errors.html#scripterror
    at makeError (require.js:5)
    at HTMLScriptElement.onScriptError (require.js:5)

Вот моя структура каталогов для скриптов

Scripts
|----Custom
|----|---- login.js
|----|---- signup.js
Bootstrap.min.js
jquery-3.3.1.js
jquery.validate.min.js
jquery.validate.unobtrusive.min.js
knockout-3.4.2.js
main.js
modernizer-2.8.3.js
require.js

Страница входа, которая является домашней страницей, загружает все правильные сценарии. Путь для requirejs это / Scripts / requirejs на этой странице. Однако на другой странице он пытается найти файл main.js в Users/Scripts/main.js, который не существует.

Вот так выглядит мой main.js

requirejs.config({
    baseUrl: '/Scripts',
    paths: {
        'jquery': 'jquery-3.3.1.min',
        'jquery.validate': 'jquery.validate.min',
        'jquery.validate.unobtrusive': 'jquery.validate.unobtrusive.min',
        'knockout': 'knockout-3.4.2',
        'login': 'Custom/login',
        'signup': 'Custom/signup'
    },
    shim: {
        'jquery.validate': ['jquery'],
        'jquery.validate.unobtrusive': ['jquery', 'jquery.validate']
    }
});
var base = {}

base.init = function () {

    if (applicationConfig.login) {
        require(['login']);
    }
    if (applicationConfig.signup) {
        require(['signup']);
    }
}

base.init();

Как правильно загрузить requirejs и main.js даже после перенаправления?

Edit:

Вот так я загружаю файл main.js в свой _Layout.cshtml

<script data-main="Scripts/main" src="~/Scripts/require.js"></script>

1 Ответ

0 голосов
/ 07 января 2019

Я смог это исправить, изменив

<script data-main="Scripts/main" src="~/Scripts/require.js"></script>

до

<script data-main="/Scripts/main" src="~/Scripts/require.js"></script>
...