SVG在本地工作,但不在远程服务器wordpress上工作

时间:2016-05-12 21:09:03

标签: php wordpress svg advanced-custom-fields

这给了偏头痛。我刚刚在本地完成了我的网站,并将其移至我的服务器。现在我已经在本地设置了启用SVG插件的主题,它就像一个魅力。在我的外部服务器上它没有(www.mantasmilka.com>单个帖子就是我正在处理的那个。

<?php
        // check if the repeater field has rows of data
        if( have_rows('info_tools') ):
       ?>
        <div class="icon-holder">
          <?php
           // loop through the rows of data
             while ( have_rows('info_tools') ) : the_row();
                // vars
                $tool_image = get_sub_field('image');
                $tool_name = get_sub_field('name');
          ?>
          <a href="#" class="<?php echo $tool_name ?>">
            <svg viewbox="0 0 50 50">
              <?php echo $tool_image;
              echo file_get_contents($tool_image); ?>
            </svg>
            <img src="http://www.mantasmilka.com/wp-content/uploads/2016/05/photoshop.svg" alt="" />
            <?php get_template_part(images/inline, 'http://www.mantasmilka.com/wp-content/uploads/2016/05/photoshop.svg.php'); ?>
          </a>
        <?php endwhile; ?>
        </div>
      <?php endif; ?>

我尝试了很多解决方案,似乎没有任何工作......有没有人知道我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

不能真正回答您的确切问题,但这是 Google 搜索“svg 在本地工作但不在服务器上工作”中弹出的少数问题之一。希望对未来的研究人员有所帮助。

就我而言,原因很容易理解和解决。

在本地我直接处理一个文件,但在远程文件中包含了该文件。所以在本地,我在“root”中有 file.phpimage.svg,我用

调用它
<img alt="..." title="..." src="image.svg">

效果很好。

当在服务器上时,文件结构类似于

[root]
+-[includes]
| +-[MY_INCLUDE_FOLDER]
|   +-image.svg
|   +-file.php
+-index.php

index.php 的某个地方有这条线

include_once __DIR__ . '/includes/MY_INCLUDE_FOLDER/file.php';

现在,由于这不仅仅是对带有 PHP 输出的 PHP 脚本的简单调用,而是带有 HTML 的整个网页,因此它还有一行 <base href="https://example.com/">

这意味着 <img> 源实际上是 https://example.com/image.svg 而不是 https://example.com/includes/MY_INCLUDE_FOLDER/image.svg