Symfony 2资产项目布局和资源管理
我正在尝试一个网站,我正在努力并使其适应于使用symfony框架,但我在web开发方面相当新,并且有一堆问题。Symfony 2资产项目布局和资源管理
- 我有一个非常困难的时间让我所有的资源加载正确。我试图使用资产,但无论我尝试什么,当我加载页面时,我都会收到数百个404未找到响应。我现在的目录结构如下:
- Symfony的
- SRC
- CS4750
- PhotoChallengeBundle
- 控制器
- 回复来源
- 配置
- 公共
- CSS
- IMG
- JS
- 库
- LibraryX
- CSS
- IMG
个- JS
- 视图
我现在最大的问题是在css文件中的图像。我一直在使用
filters:
cssrewrite: ~
尝试,但所有的路径都指向的http://localhost/Symfony/web/bundles/cs4750photochallenge/img
http://localhost/Symfony/web/Resources/public/img/*
代替 我第一次尝试没有做资产:安装网络,然后用这样但无论那些似乎有所作为。如果有人帮助我完成这个工作,那真是太棒了。
我遇到的另一个问题是与一个css文件导入两个额外的css文件。当页面加载额外的CSS文件时也返回404响应。
是什么资产之间的区别:安装和资产:转储
我也有我的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 %}
随着你的CSS文件的相对链接和CSS重写过滤器,并转储资产,它应该没有问题的工作。
你应该在你的树枝文件中使用的过滤器:
{% stylesheets '@PhotoChallengeBundle/Resources/public/css/*' filter='cssrewrite' %}
<link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}" />
{% endstylesheets %}
您可以检查Assetic entry in the cookbook详细insturctions。
当我做资产:只转储js和css文件夹移动到web目录,img目录和js和css文件它们在LibraryX文件夹中没有。我需要手动移动它们吗?如果是这样的话,web文件夹中的目录结构应该如何保存这些其他文件?资产到底是什么:转储如何决定要移动的文件?感谢您的帮助! – Nath5 2012-03-19 00:53:00
您不应该手动移动任何IMO,但现在没有时间去查看。如果没有人在我面前做,我会尽力回答明天。 – 2012-03-19 00:56:57
谢谢!我现在再给它一次,让你知道发生了什么!在我的css文件的url(../ img/bg/patterns/noise.png)会这样工作还是有我应该使用的特殊路径。同样的东西进口@import url('reset.css'); – Nath5 2012-03-19 01:01:41
这工作对我来说:http://stackoverflow.com/a/12066577/1516791 – ChocoDeveloper 2012-08-22 05:21:03