Routing Symfony2试图通过路由为我的/css/*路径提供信息,但我没有';我不想这样
如果我去这个URIRouting 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/*路径进行路由。(我知道文件存在。)我该怎
/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
文件。我尝试了你建议的两种方法。第二种似乎不管用,但第一种管用。你建议的两种方法我都试过了。第二个似乎不起作用,但第一个起作用了。