2016-04-23 100 views
0

我在我的Symfony2项目中安装了很多软件包(我使用的是Symfony 2.8)。我按照doc来安装这些与composer捆绑在一起。但是当我尝试访问页面时,许多资源文件丢失(错误404)。Symfony2 Bundle资源文件丢失

例如,与捆绑TinymceBundle。

网/ JS/TinyMCE的/ tinymce.min.js

丢失。

捆绑包实际上工作,但此文件丢失。

这是我composer.json:

{ 
    "name": "symfony/framework-standard-edition", 
    "license": "MIT", 
    "type": "project", 
    "description": "The \"Symfony Standard Edition\" distribution", 
    "autoload": { 
     "psr-0": { "": "src/", "SymfonyStandard": "app/" } 
    }, 
    "require": { 
     "php": ">=5.3.3", 
     "symfony/symfony": "2.8.*", 
     "codeplex/phpexcel": "dev-master", 
     "doctrine/orm": "~2.2,>=2.2.3,<2.5", 
     "doctrine/dbal": "<2.5", 
     "doctrine/doctrine-bundle": "~1.2", 
     "twig/extensions": "~1.0", 
     "symfony/assetic-bundle": "~2.3", 
     "symfony/swiftmailer-bundle": "~2.3", 
     "symfony/monolog-bundle": "~2.4", 
     "sensio/distribution-bundle": "~3.0,>=3.0.12", 
     "sensio/framework-extra-bundle": "~3.0,>=3.0.2", 
     "incenteev/composer-parameter-handler": "~2.0", 
     "knplabs/knp-menu": "2.1.1", 
     "knplabs/knp-menu-bundle": "2.1.1", 
     "genemu/form-bundle": "2.2.*", 
     "swiftmailer/swiftmailer": "@stable", 
     "gregwar/captcha-bundle": "1.0.12", 
     "knplabs/knp-snappy-bundle": "dev-master", 
     "egulias/email-validator": "~1.2", 
     "friendsofsymfony/jsrouting-bundle": "^1.5", 
     "doctrine/doctrine-fixtures-bundle": "~2.2", 
     "stfalcon/tinymce-bundle": "1.0" 
    }, 
    "require-dev": { 
     "sensio/generator-bundle": "~2.3" 
    }, 
    "scripts": { 
     "post-root-package-install": [ 
      "SymfonyStandard\\Composer::hookRootPackageInstall" 
     ], 
     "post-install-cmd": [ 
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles" 
     ], 
     "post-update-cmd": [ 
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles" 
     ] 
    }, 
    "config": { 
     "bin-dir": "bin", 
    }, 
    "extra": { 
     "symfony-app-dir": "app", 
     "symfony-web-dir": "web", 
     "symfony-assets-install": "relative", 
     "incenteev-parameters": { 
      "file": "app/config/parameters.yml" 
     }, 
     "branch-alias": { 
      "dev-master": "2.6-dev" 
     } 
    } 
} 

我不明白为什么这些文件是不是在web/JS,你能帮帮我吗?

编辑:

还有就是我样式块

{% block stylesheet %} 
    <link rel="stylesheet" href="{{ asset('css/DT_bootstrap.css') }}" /> 
    <link rel="stylesheet" href="{{ asset('css/datatables.responsive.css') }}" /> 
    {{ tinymce_init({ 
     theme: {'simple':{'language': app.request.locale, 'height': 200 }}, 
     toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image", 
     autosave_ask_before_unload: false }) 
    }} 

{% endblock %} 

而且我linkscript块

{% block linkscript %} 
    <script type="text/javascript" src="{{ asset('js/dataTable/datatables.responsive.js') }}"></script> 
    <script type="text/javascript" src="{{ asset('js/tinymce/tinymce.min.js') }}"></script> 
{% endblock %} 

谢谢!

+0

我假设你做了一个“作曲家更新”? – Letsrocks

+0

是的,我做了一个作曲家更新 – Eraseth

+1

尝试'php应用程序/控制台资产:安装网络/' – Letsrocks

回答

0

如果捆资源缺失(它们不是在资产文件夹中创建),你也许不这部分代码添加到AppKernel:

<?php 
// ... 
public function registerBundles() 
{ 
    $bundles = array(
     // ... 
     new Stfalcon\Bundle\TinymceBundle\StfalconTinymceBundle(), 
    ); 
} 

其实我已经下载的Symfony 2.8和stfalcon/TinyMCE的束 - 你只需要添加代码AppKernel,然后运行

php app/console assets:install web/ 

,然后添加到模板枝杈这部分:

{{ tinymce_init() }} 

之后应该注入所有文件。此功能将使用此路径包括tinemce:

web/bundles/stfalcontinymce/vendor/tinymce/tinymce.min.js 

总结。如果资产文件在运行控制台命令后没有出现,可能是您没有将软件包添加到AppKernel中,或者您在错误位置查找这些文件。在默认情况下,资产将被放置在

/web/bundles/* 
+0

我添加到appKernel的包。而资源文件在web/bundle中,但浏览器在web/js中搜索:x – Eraseth

+0

好的,所以这与另一个问题有关 - 实际上浏览器不是在错误的路径中搜索,而是代码给出了错误的路径:P请显示你如何在你的模板中添加像css和js这样的资源文件。哪些文件无法加载? – kkochanski

+0

我现在不能,但明天。谢谢你的帮助 – Eraseth