Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从公共文件夹外部使用PHP提供css图像_Php_Css_Image - Fatal编程技术网

从公共文件夹外部使用PHP提供css图像

从公共文件夹外部使用PHP提供css图像,php,css,image,Php,Css,Image,我有一个链接到图像的css文件 .test{ background: url(http://site.com/dynamic/test.jpg) no-repeat; } 然而,这些图像是动态的。它们每分钟都在变化,所以我必须生成它们并使用php为它们提供服务。这意味着我不会将它们保存到公用文件夹。我只是直接从php脚本提供它们 问题是当我访问php脚本时(http://site.com/dynamic/test.jpg),它正确地生成图像,我可以在浏览器中看到它,但是当css文件中使用我

我有一个链接到图像的css文件

.test{
  background: url(http://site.com/dynamic/test.jpg) no-repeat;
}
然而,这些图像是动态的。它们每分钟都在变化,所以我必须生成它们并使用php为它们提供服务。这意味着我不会将它们保存到公用文件夹。我只是直接从php脚本提供它们

问题是当我访问php脚本时(
http://site.com/dynamic/test.jpg
),它正确地生成图像,我可以在浏览器中看到它,但是当css文件中使用我需要的相同url时,css似乎无法访问图像

我认为这是因为图像没有保存在公共文件夹中,而是由php交付的,这意味着图像必须直接调用才能生成,调用css文件实际上不会影响php脚本(图像url)


有人有办法解决这个问题吗?

尝试使用php头函数返回内容类型

header("Content-type: application/force-download"); 
header('Content-Type: application/octet-stream'); 
header('Content-Type: image/jpeg'); // or png...

首先,你应该问你自己的系统发生了什么,而不是那些不知道也无法访问你网站的人

使用一些HTTP嗅探器查看发送哪些HTTP请求以及返回哪些响应。 LiveHTTPHeader或Firefox的firebug插件或任何类型的插件都可以使用

然后将这些标题与直接请求此图像的标题进行比较。

然后你可以在这里提问,提供这些标题

不管图像是如何创建的,CSS都是一样的。如果您安装了firebug,请查看netpanel,查看在尝试加载图像时是否出现错误。只是好奇,为什么要引用.jpg,如果php脚本正在生成它,它不是test.php吗?(除非php编译器处理了jpg扩展,这很奇怪)@mazzzz:OP可能正在解析
$\u服务器['REQUEST\u URI']
或类似的东西来提取虚拟路径。或者使用
mod_rewrite
。有很多方法可以掩盖这一点。缓存控制头也不会有什么坏处,因为这些图像每分钟都在更新。标头(“缓存控制:无缓存,必须重新验证”);那么,您是否建议我们创建一个响应头包含这些语句的操作?你能发一些代码吗?