我正在学习PHP类和对象,所以为了获得一些经验,我正在使用这些而不是静态html转换我的网站,以免我一遍又一遍地输入相同的通用HTML。
所以,这是对象的一部分:
<link rel=\"stylesheet\" type=\"text/css\" href=\"".$_SERVER['DOCUMENT_ROOT']."/main.css\" />
...在浏览器中生成它(在我更改Apache配置文件中的根目录之后):
<link rel="stylesheet" type="text/css" href="C:/wamp/www/test/main.css" />
我的问题是该css文件中的样式没有显示在页面上。如果我复制浏览器中显示的css文件的位置(单击“查看源”时)并将其输入到URL栏中,则会显示css文件。因此,如果我可以通过这种方式访问它,为什么网页无法访问它?我假设它与权限有关,但是如果我在文件浏览器中右键单击css文件,它说一切都至少可以读取它......
非常感谢任何帮助。
答案 0 :(得分:3)
省去一些努力。这也适用:
<link rel="stylesheet" type="text/css" href="/main.css" media="all" />
当然,这假设CSS文件位于文档根目录中。
答案 1 :(得分:0)
如果其他人访问您的网页并且没有名为"C:/wamp/www/test/main.css"
的文件,会怎样? ;-)我想每个浏览器的实现会有所不同,但是网站不应该以这种方式访问访问者计算机上的资源。
您想要使用网站名称(可通过$_SERVER['SERVER_NAME'
获得)或绝对网址(/test/main.css
),并在$_SERVER['SERVER_NAME']
元素中设置<base href>
。< / p>
答案 2 :(得分:0)
您通过网址(http://example.com/foo/bar
)访问网站,而不是通过服务器硬盘中的路径(C:\www\example\htdocs\foo\bar\index.html
)。这适用于所有内容:文档,图片......和样式表。
除非您打算更改它,否则您不需要从PHP变量中获取Web根目录。大多数情况下,您可以愉快地对/
进行硬编码。我建议创建自己的常量:
define('WEB_ROOT','/');
&GT;