如果不在根路径,则要求JS不加载

max*_*022 2 javascript requirejs

我的requirejs设置有问题,我试图解决它,但每次我打破应用程序.这是我的index.html

<script type="text/javascript" src="/js/bower_components/requirejs/require.js"></script>
<script>
    // obtain requirejs config
    require(['require', 'js/require-config'], function (require, config) {

        // update global require config
        window.require.config(config);

        // load app
        require(['main']);
    });
</script>
Run Code Online (Sandbox Code Playgroud)

如果我从根路径"/"加载应用程序,这很有效,但是一旦我尝试在其他地方刷新应用程序(即./ user/1),我就会收到以下错误:

资源解释为脚本但使用MIME类型text/html传输:" http://domain.local/users/js/require-config.js ".

require.js:1895 Uncaught SyntaxError:意外的令牌<

require-config.js:1资源被解释为脚本但使用MIME类型text/html传输:" http://domain.local/users/main.js ".

require.js:1895 Uncaught SyntaxError:意外的令牌<

正如你可以看到它在相对路径上寻找文件: http://domain.local/users/js/require-config.js

但它应该加载: http://domain.local/js/require-config.js

如果我/在模块的前面添加一个,那么它就不再工作了,因为它正在寻找一个文件而不是一个模块:

<script type="text/javascript" src="/js/bower_components/requirejs/require.js"></script>
<script>
    // obtain requirejs config
    require(['require', '/js/require-config'], function (require, config) {

        // update global require config
        window.require.config(config);

        // load app
        require(['/js/main']);
    });
</script>
Run Code Online (Sandbox Code Playgroud)

资源解释为脚本但使用MIME类型text/html传输:" http://domain.local/js/require-config ".require.js:1895年

未捕获的SyntaxError:意外的令牌<require-config:1资源被解释为脚本但使用MIME类型text/html传输:

" http://domain.local/js/main ".require.js:1895 Uncaught SyntaxError:意外的令牌<

我尝试了几个combinaison,但每次它打破了一些东西:(

非常感谢帮助;)

A-3*_*312 5

如果路径以"/"开头,请添加.js扩展名.

<script type="text/javascript" src="/js/bower_components/requirejs/require.js"></script>
<script>
    // obtain requirejs config
    require(['require', '/js/require-config.js'], function (require, config) {

        // update global require config
        window.require.config(config);

        // load app
        require(['/js/main.js']);
    });
</script>
Run Code Online (Sandbox Code Playgroud)

喜欢使用这个部分:

index.html:

<script data-main="/js/require.file.js" src="/js/bower_components/requirejs/require.js"></script>
Run Code Online (Sandbox Code Playgroud)

require.file.js:

require.config({ // Your config :
    baseUrl: "/js"
});
require(["main"],
    function(someModule, myModule) {
        //onload.
    }
);
Run Code Online (Sandbox Code Playgroud)

查看更多:配置选项