EkinoWordpressBundle声明路径配置

时间:2015-04-12 10:20:10

标签: wordpress symfony

我尝试设置https://github.com/ekino/EkinoWordpressBundle 我从设置手册,网站工作,但资产有错误的路径

我在symfony2 twig模板中的例子

<script src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>

在渲染源中我将其视为

<script src="/js/routing?callback=fos.Router.setData"></script>

或直接

<img src="/bundles/mybundle/img/test.jpg">

for / is real path

/symfony/web/bundles/mybundle/img/test.jpg

所以它不起作用。手册的页面结构是

/
/symfony
/symfony/web
/index.php 

我没有在捆绑作者手册中找到概念,

我应该在htacces中添加一些内容,还是可以在symfony config中配置它?

这里提出.htacces

DirectoryIndex index.php
IndexIgnore /symfony

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^index\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule .? - [L]

    # Rewrite all other queries to the front controller.
    RewriteRule .? %{ENV:BASE}/index.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /index.php/
    </IfModule>
</IfModule>

1 个答案:

答案 0 :(得分:1)

我刚刚在Github问题上回答了这个问题(https://github.com/ekino/EkinoWordpressBundle/issues/77),但我也会在这里回答,因为有些人应该对这个问题感兴趣。

我至少看到两种方法来解决这个问题。

1 - 在资产目录

上创建符号链接

简单的方法是将(Wordpress)根目录上的符号链接添加到symfony/web/jssymfony/web/bundles,例如:

$ ln -s symfony/web/js js
$ ln -s symfony/web/bundles bundles

2 - 覆盖Symfony资产UrlPackage类

您可以通过覆盖Symfony\Component\Templating\Asset\UrlPackage类来覆盖Symfony资产管理使用的基本网址。

创建一个新的自定义类:

<?php

namespace Acme\DemoBundle\Templating\Asset;

use Symfony\Component\Templating\Asset\UrlPackage as BaseUrlPackage;

/**
 * UrlPackage
 */
class UrlPackage extends BaseUrlPackage
{
    /**
     * {@inheritdoc}
     */
    public function getBaseUrl($path)
    {
        $baseUrl = parent::getBaseUrl($path);

        return sprintf('/symfony/%s', $baseUrl);
    }
}

然后将新类定义到config.yml文件中的相应参数:

parameters:
    templating.asset.url_package.class: Acme\DemoBundle\Templating\Asset\UrlPackage

也许我们可以将这个UrlPackage类添加到包中。您觉得向我们提交拉取请求以将其与新的捆绑配置条目集成是否感觉良好?

否则,我会尽快尝试实施。

希望它有所帮助。

感谢您的反馈。