我有一个CSS文件,其中包含一些路径(图像,字体等url(..)
).
我的路径结构是这样的:
...
+-src/
| +-MyCompany/
| +-MyBundle/
| +-Resources/
| +-assets/
| +-css/
| +-stylesheets...
+-web/
| +-images/
| +-images...
...
Run Code Online (Sandbox Code Playgroud)
我想在样式表中引用我的图像.
我将CSS文件中的所有路径都更改为绝对路径.这不是解决方案,因为应用程序应该(并且必须!)也在子目录中工作.
使用Assetic filter="cssrewrite"
.
所以我将CSS文件中的所有路径都更改为
url("../../../../../../web/images/myimage.png")
Run Code Online (Sandbox Code Playgroud)
表示从我的资源目录到/web/images
目录的实际路径.这不起作用,因为cssrewrite生成以下代码:
url("../../Resources/assets/")
Run Code Online (Sandbox Code Playgroud)
这显然是错误的道路.
assetic:dump
创建此路径后,仍然存在错误:
url("../../../web/images/myimage.png")
Run Code Online (Sandbox Code Playgroud)
Assetic的枝条代码:
{% stylesheets
'@MyCompanyMyBundle/Resources/assets/css/*.css'
filter="cssrewrite"
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
Run Code Online (Sandbox Code Playgroud)
由于所有CSS文件最终都存在/web/css/stylexyz.css
,我将CSS文件中的所有路径都更改为相对:
url("../images/myimage.png")
Run Code Online (Sandbox Code Playgroud)
除了在dev
环境中之外,这个(坏)解决方案是有效的:CSS路径是/app_dev.php/css/stylexyz.css
因此得到的图像路径/app_dev.php/images/myimage.png
,这导致了一个NotFoundHttpException
.
有更好的工作解决方案吗?
我创建了一个symfomy应用程序包,可用于从Android应用程序收集崩溃报告(对于那些对Android和ACRA感兴趣的人:https://github.com/marvinlabs/acra-server).
那些可以使用它的人可以简单地将该应用程序安装为常规的Symfony 2软件包,从GitHub获取并执行所需的所有命令行工作但我希望人们能够非常简单地安装该应用程序而不需要:
为此,我打包了一个包含整个Symfony代码+我的包的zip文件.问题:似乎找不到CSS和Javascripts,我仍然需要在服务器上运行命令:
php app/console assetic:dump --env=prod --no-debug
Run Code Online (Sandbox Code Playgroud)
问题1:我怎么能摆脱最后一步?
问题2:总的来说,在制作zip文件之前,你会在我的流程中添加什么?
在制作该zip文件之前,我就是这样做的:
我还执行以下命令:
php app/console cache:clear --env=dev
php app/console cache:clear --env=prod
php app/console doctrine:schema:create --env=dev --dump-sql > create-schema.sql
php app/console doctrine:schema:update --env=dev --dump-sql > update-schema.sql
php app/console assets:install --env=prod --no-debug
php app/console assetic:dump --env=prod --no-debug
Run Code Online (Sandbox Code Playgroud)
PS:
要为尝试排除故障的人安装说明:
编辑12/06/2013 …