0

我正在尝试使用一个我正在开发的网站并将其调整为使用 symfony 框架,但我在 Web 开发方面相当新,并且有很多问题。

  1. 我很难让所有资源正确加载。我正在尝试使用资产,但无论我尝试什么,当我加载页面时,我都会收到数百个 404 not found 响应。我当前的目录结构如下:

  • Symfony
    • 源代码
      • CS4750
        • PhotoChallengeBundle
          • 控制器
          • 资源
            • 配置
            • 上市
              • css
              • 图像
              • js
              • 图书馆
                • 图书馆X
                  • css
                  • 图像
                  • js
            • 意见

我现在遇到的最大问题是css文件中的图像。我试过使用

filters:
    cssrewrite: ~

但是所有路径都指向http://localhost/Symfony/web/Resources/public/img/*而不是 http://localhost/Symfony/web/bundles/cs4750photochallenge/img 我先尝试而不做资产:安装网络然后这样做,但这些似乎都没有什么不同。如果有人帮助我解决这个问题,那就太棒了。

  1. 我遇到的另一个问题是一个 css 文件,它导入了两个额外的 css 文件。当页面加载额外的 css 文件时,也会返回 404 响应。

  2. 资产:安装和资产:转储有什么区别

  3. 我也有一个 js 文件返回服务器错误 500,但我解决它的方法与其他似乎工作正常的 js 文件相同。

任何上述问题的答案将不胜感激或链接到相关网站/帖子。我已经在互联网上挖掘了几个小时,但并没有真正取得任何进展。如果您需要我发布和编码或更详细地描述我的项目布局,请告诉我。

更多信息:

Example of css files:


 /* IMPORTS ------------------------------------------------------------*/

    @import url('reset.css');
    @import url('styled-elements.css');
    /* HACKS ------------------------------------------------------------*/

    .clear {
        clear: both;
        height: 1px;
    }
    body {
        line-height: 1;
        color: #51565b;
        background: #f1f1f1 url(../img/bg/patterns/noise.png);
        font-family: Arial, Helvetica, sans-serif;
        font-size: 100%;
}

Config_dev.yml:

 imports:
    - { resource: config.yml }

framework:
    router:   { resource: "%kernel.root_dir%/config/routing_dev.yml" }
    profiler: { only_exceptions: false }

web_profiler:
    toolbar: true
    intercept_redirects: false

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
        firephp:
            type:  firephp
            level: info

assetic:
    use_controller: true
    filters:
        cssrewrite: ~

模板:

<!DOCTYPE  html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Weekly Photo Challenge</title>
        <!-- CSS -->
        {% stylesheets
            '@CS4750PhotoChallengeBundle/Resources/public/css/*'
            '@CS4750PhotoChallengeBundle/Resources/public/libraries/fancybox/css/*'

            filter='cssrewrite'
        %}
            <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}" />
        {% endstylesheets %}

        <!-- JAVASCRIPT -->
        {% javascripts
            '@CS4750PhotoChallengeBundle/Resources/public/js/jquery-1.5.1.min.js'
            '@CS4750PhotoChallengeBundle/Resources/public/js/*'
            '@CS4750PhotoChallengeBundle/Resources/public/js/ajax/*'
            '@CS4750PhotoChallengeBundle/Resources/public/libraries/fancybox/js/*'

        %}
            <script type="text/javascript" src="{{ asset_url }}"></script>
        {% endjavascripts %}
4

3 回答 3

2

我创建了一个小包FkrCssURLRewriteBundle来解决这个问题。看看自述文件是如何工作的。也许对你们中的一些人来说很有趣。

于 2012-06-09T13:48:16.010 回答
1

cssrewrite 过滤器目前与@bundle 表示法不兼容。请参阅:Symfony 2 中 CSS 文件中的资产路径

于 2012-05-23T17:46:46.613 回答
-1

使用 css 文件中的相关链接、css 重写过滤器和转储资产,它应该可以正常工作。

您应该在 twig 文件中使用过滤器:

{% stylesheets '@PhotoChallengeBundle/Resources/public/css/*' filter='cssrewrite' %}
    <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}" />
{% endstylesheets %}

您可以查看食谱中的 Assetic 条目以获取详细说明。

于 2012-03-19T00:49:05.793 回答