相关疑难解决方法(0)

Symfony 2中CSS文件中的资产路径

问题

我有一个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.

有更好的工作解决方案吗?

css php symfony assetic

100
推荐指数
4
解决办法
11万
查看次数

创建一个随时可用的symfony 2应用程序zip

我创建了一个symfomy应用程序包,可用于从Android应用程序收集崩溃报告(对于那些对Android和ACRA感兴趣的人:https://github.com/marvinlabs/acra-server).

那些可以使用它的人可以简单地将该应用程序安装为常规的Symfony 2软件包,从GitHub获取并执行所需的所有命令行工作我希望人们能够非常简单地安装该应用程序而不需要:

  • 任何symfony的知识
  • 需要访问php composer
  • 需要输入任何php命令行

为此,我打包了一个包含整个Symfony代码+我的包的zip文件.问题:似乎找不到CSS和Javascripts,我仍然需要在服务器上运行命令:

php app/console assetic:dump --env=prod --no-debug
Run Code Online (Sandbox Code Playgroud)

问题1:我怎么能摆脱最后一步?

问题2:总的来说,在制作zip文件之前,你会在我的流程中添加什么?


在制作该zip文件之前,我就是这样做的:

  • 删除所有git文件夹
  • 删除我的app/config/parameters.yml文件(特定于我的开发环境)

我还执行以下命令:

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:


要为尝试排除故障的人安装说明:

  1. 下载http://www.vincentprat.info/tmp/acra-server-1.0.0.zip
  2. 上传服务器上的zip内容
  3. 将权限777授予目录app/logs和app/cache
  4. 从示例文件app/config/parameters.yml.dist创建文件app/config/parameters.yml
  5. 在create-schema.sql文件的帮助下创建数据库表
  6. 使您的(子)域指向acra-server/web目录
  7. 访问主页:http://www.example.com/dashboard

编辑12/06/2013 …

deployment assets symfony assetic

5
推荐指数
1
解决办法
1506
查看次数

标签 统计

assetic ×2

symfony ×2

assets ×1

css ×1

deployment ×1

php ×1