Javascript 如何在requireJs中使用Assetic

Javascript 如何在requireJs中使用Assetic,javascript,symfony,requirejs,Javascript,Symfony,Requirejs,我正在尝试在synfony2项目中使用require.js 下面是主细枝文件中的代码: <script data-main="{{ asset('bundles/web/js/main.js') }}" src="{{ asset('vendor/js/require.js') }}"> </script> 因此路径是权限,但在javascript控制台上,我得到以下消息: 得到 http://localhost/~myName/my

我正在尝试在synfony2项目中使用require.js

下面是主细枝文件中的代码:

<script 
        data-main="{{ asset('bundles/web/js/main.js') }}" 
        src="{{ asset('vendor/js/require.js') }}">
</script>
因此路径是权限,但在javascript控制台上,我得到以下消息:

得到
http://localhost/~myName/myProject/web/app_dev.php/main.js?201205021855
404(未找到)

  • 确保从您的资产中删除“.js”文件扩展名。应该是 data main=“{asset('bundles/web/js/main')}”

  • 确保文件的路径正确

  • 确保main.js中没有javascript错误


  • 添加到@dgabriel响应。你可以用切片过滤器

    <script 
            data-main="{{ asset('bundles/web/js/main.js') | slice(0, -3) }}" 
            src="{{ asset('vendor/js/require.js') }}">
    </script>
    

    404看起来像是应用程序中其他地方需要“main”的结果-它与数据main中的路径不匹配。在这种情况下,很可能是baseUrl或路径配置出现问题(这两种配置都是告诉RequireJS模块所在位置的不同方式)。在您的示例中,您的baseUrl需要是“/~myName/myProject/web/bundles/web/js”


    您可能想尝试使用。它会自动为您处理这些配置详细信息,并与Assetic很好地集成。

    谢谢@dgabriel和m2mdas,我编辑了我的问题,添加了更多详细信息。嗯,您已经为Assetic启用了
    asset\u version
    选项。之所以出现404井,是因为web目录中的
    .htaccess
    将此路径视为路由,而不是文件路径。此外,在twig中,regex replace filter不可用。要做到这一点,您必须创建一个细枝扩展。
    <script 
            data-main="{{ asset('bundles/web/js/main.js') | slice(0, -3) }}" 
            src="{{ asset('vendor/js/require.js') }}">
    </script>