【问题标题】:SVG works locally, but not on remote server wordpressSVG 在本地工作,但不能在远程服务器 wordpress 上工作
【发布时间】:2016-09-08 21:48:00
【问题描述】:

这会导致偏头痛。我刚刚在本地完成了我的网站并将其移至我的服务器。现在我已经在本地使用启用的 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; ?>

我尝试了许多解决方案,但似乎没有任何效果...有人知道我在这里缺少什么吗?

【问题讨论】:

  • 如果它在本地工作但不在您的服务器上,那么问题可能不在您的代码中,而可能是由于服务器配置的差异。例如,您的服务器可能会阻止文件名“photoshop.svg.php”,而您的本地系统允许它通过。
  • 问题是,如果我包装它,我的 img 标签它可以在服务器端工作。我已添加到 svg .php 扩展名,因此包含 svgs 将按照本教程中的建议通过 get_tenplate_part() 工作。 blog.teamtreehouse.com/perfect-wordpress-inline-svg-workflow 可悲的是,这个甚至不能在本地主机上工作。无论如何,将 svgs 上传到 wp-admin 可以使用插件支持 svg 没问题,但是获取内容并将它们内联粘贴 - 不是真的。
  • 也许你的服务器没有提供 SVG 作为图像,这发生在我身上一次......阅读this article
  • 谢谢!我明天看看这个。非常感谢您的任何意见!

标签: php wordpress svg advanced-custom-fields


【解决方案1】:

没有真正回答您的确切问题,但这是谷歌搜索“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 的整个网页,所以它还有一行 &lt;base href="https://example.com/"&gt;

这意味着&lt;img&gt; 源实际上是https://example.com/image.svg 而不是https://example.com/includes/MY_INCLUDE_FOLDER/image.svg

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-01
    • 2015-06-19
    • 2021-10-14
    • 1970-01-01
    • 2018-11-30
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多