从symfony 4开始,我使用bundle jsrouting从JS代码获取symfony路由路径。
在dev
环境中一切正常,但是当我将symfony配置设置为prod
mod时,当我加载其中我的一个JavaScript脚本使用jsrouting的页面时,会出现此错误:
(我的页面使用的自定义javascript文件global.js
中发生错误)
我的树枝文件包含以下内容:
<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>
<script src="{{ asset('build/js/us/builder/global.js') }}"></script>
APP_ENV
设置为dev
:在加载页面时,从浏览器调试器中看到:APP_ENV
设置为prod
:在加载页面时,从浏览器调试器中看到:我不明白为什么进入prod
模式时会出现这两行:
<script src="/*****/public/bundles/fosjsrouting/js/router.js"></script>
<script src="/*****/public/js/routing?callback=fos.Router.setData"></script>
丢失了...这就是为什么我收到错误“ Routing not defined”的原因,因为在router.js文件中定义了“ Routing”。
我不明白为什么Symfony在prod
环境中会丢失这些行
我的配置文件/myproject/config/bundles.php
的内容:
<?php
return [
//...
FOS\JsRoutingBundle\FOSJsRoutingBundle::class => ['all' => true],
];
编辑:某些控制台命令的输出:
答案 0 :(得分:0)
仔细查看您的var目录,子目录权限和所有者。
php bin/console cache:pool:clear cache.global_clearer
chmod -R 777 var/log
为产品目录输入正确的所有者:
cache/prod