Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Routing Symfony2试图通过路由为我的/css/*路径提供信息,但我没有';我不想这样_Routing_Symfony - Fatal编程技术网

Routing Symfony2试图通过路由为我的/css/*路径提供信息,但我没有';我不想这样

Routing Symfony2试图通过路由为我的/css/*路径提供信息,但我没有';我不想这样,routing,symfony,Routing,Symfony,如果我去这个URI /app_dev.php/css/eabd201_jquery.ui.theme_15.css 它给了我CSS文件,这是我所期望的,但是如果我转到这个URI /app_dev.php/css/images/ui-icons_222222_256x240.png 我得到这个错误: 找不到“GET/css/images/ui-icons_22222_256x240.png”的路由 似乎一定有办法告诉Symfony不要尝试通过/css/*路径进行路由。(我知道文件存在。)我该怎

如果我去这个URI

/app_dev.php/css/eabd201_jquery.ui.theme_15.css
它给了我CSS文件,这是我所期望的,但是如果我转到这个URI

/app_dev.php/css/images/ui-icons_222222_256x240.png
我得到这个错误:

找不到“GET/css/images/ui-icons_22222_256x240.png”的路由

似乎一定有办法告诉Symfony不要尝试通过
/css/*
路径进行路由。(我知道文件存在。)我该怎么做

编辑:这是我的
.htaccess
文件:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$app.php[QSA,L]

我不知道这是否正是您的情况,但想象一下目录结构:

├── css
│   ├── style.css
├── images
│   ├── foo.png
style.css
中,只要使用相对路径(如
url(../images/foo.png)
)引用图像,那么如果将
style.css
移动到另一个目录中,它就无法工作

您正在使用Assetic呈现CSS文件,因此Assetic将此CSS文件“移动”到
/app_dev.php/CSS
目录中,该目录实际上并不存在,由
app_dev.php
控制器处理。因此现在,图像的相对路径不是指向图像,而是指向
/app_dev.php/images/foo.png
,它实际上并不存在,由
app_dev.php
控制器处理

希望这是一个非常常见的问题,并且有一个内置的解决方案:
cssrewite
过滤器

您可以将其添加到
{%stylesheet%}
标记中:

# app/config/config.yml
assetic:
    # ...
    filters:
        cssrewrite: ~

或者将其应用于每个CSS文件:

# app/config/config.yml
assetic:
    # ...
    filters:
        cssrwrite:
            apply_to: \.css$

它将负责为您的用户重写此类路径。

我不知道这是否正是您的情况,但想象一下目录结构:

├── css
│   ├── style.css
├── images
│   ├── foo.png
style.css
中,只要使用相对路径(如
url(../images/foo.png)
)引用图像,那么如果将
style.css
移动到另一个目录中,它就无法工作

您正在使用Assetic呈现CSS文件,因此Assetic将此CSS文件“移动”到
/app_dev.php/CSS
目录中,该目录实际上并不存在,由
app_dev.php
控制器处理。因此现在,图像的相对路径不是指向图像,而是指向
/app_dev.php/images/foo.png
,它实际上并不存在,由
app_dev.php
控制器处理

希望这是一个非常常见的问题,并且有一个内置的解决方案:
cssrewite
过滤器

您可以将其添加到
{%stylesheet%}
标记中:

# app/config/config.yml
assetic:
    # ...
    filters:
        cssrewrite: ~

或者将其应用于每个CSS文件:

# app/config/config.yml
assetic:
    # ...
    filters:
        cssrwrite:
            apply_to: \.css$

它将负责为您的应用程序重写此类路径。

如果您使用Apache,请粘贴
web/.htaccess
文件;如果您使用的是nginx,请粘贴vhost配置。还要粘贴
security.yml
文件。如果您使用的是Apache,请粘贴
web/.htaccess
文件;如果您使用的是nginx,请粘贴vhost配置。同时粘贴你的
security.yml
文件。我尝试了你建议的两种方法。第二种似乎不管用,但第一种管用。你建议的两种方法我都试过了。第二个似乎不起作用,但第一个起作用了。