我一直在尝试使用Symfony的一些组件,而且它的功能相对较好。我想通过一堆谷歌搜索后,我需要将.htaccess文件更改为至少这个以便它可以工作:
<IfDefine APACHE2>
AcceptPathInfo on
</IfDefine>
<Files "index.php">
Options +Includes
SetOutputFilter INCLUDES
AcceptPathInfo On
</Files>
然而,现在每当我想进行header()
调用或拥有img / script / stylesheet标签时,我需要在进入路径之前使用../。当我有一个变量名(即路径看起来像这样:index.php/article/32
)我需要../../才能进入src或href的其余路径。
我是否设置了.htaccess文件错误或者还有其他我需要做的事情?
所以img标签会是这样的:
<img href="../PATH_TO_IMAGE">
因为没有占位符并且像这样:
<img href="../../PATH_TO_IMAGE">
当占位符东西中有变量时。
因为我怀疑它不应该是这样的。
我的路由如下:
$routes = new RouteCollection();
$routes->add('loginuser', new Route('/login', array('controller' => 'registeruser', 'permission' => Permissions::$public)));
(我在一些网站上看过教程,遗憾的是我现在似乎无法找到它)
编辑:我只使用路由组件和Http Foundation组件。
提前谢谢!
答案 0 :(得分:0)
所以我通过从Symfony添加Asset组件并创建一个PathPackage来解决这个问题,该PathPackage首先指向根目录并进一步指向web文件夹。
$package = new PathPackage('/ENTER_FURTHER_PATH_HERE/', new EmptyVersionStrategy());
echo '<img src="'. $package->getUrl('Images/icon.png') . '">';
echo '<a href="' . $package->getUrl('index.php/WHATEVER') . '">Link name</a>';
echo '<a href="' . $package->getUrl('index.php') . '">Home</a>';
echo '<script src="'. $package->getUrl('Scripts/JAVASCRIPT_NAME') .'"></script>';
echo '<link src="'. $package->getUrl('CSS/STYLESHEET_NAME') .'">';
(你也可以跳过PathPackage并且这样做,因为它不是绝对必要的)
echo '<a href="/ENTER_FURTHER_PATH_HERE/index.php">Home</a>;
无论如何,这就是我解决它的方式。如果有人知道更好的方式,请随时告诉我。非常感谢。