在哪里放置perl cgi脚本的css文件?

时间:2014-10-23 08:22:46

标签: css apache perl cgi

我目前正在使用Apache Server使用URL运行我的脚本:

http://MY_IP/cgi-bin/example.cgi/

工作正常。

但是,我不确定将.css文件放在何处。我读到它不属于cgi-bin目录。

这就是我在000-default.conf文件中的内容。

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">


AllowOverride None


Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch


Order allow,deny


Allow from all


</Directory>

我已尝试将其置于此处并使用:

<link rel="stylesheet" type="text/css" href="/var/www/html/login.css"/>

但无济于事。

有人可以帮我解决这个问题吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

虽然这总是个人偏好的问题,但是很多人在他们的根目录下为javascript,css,图像等创建目录 - 所以任何静态页面都在/var/www/html,资产是在子目录中,例如/var/www/html/css/var/www/html/javascript/var/www/html/images等。

在静态html页面(/var/www/html)中,您可以使用相对链接引用这些内容,例如<link rel="stylesheet" href="css/style.css"><script src="javascript/my-script.js">或绝对链接,例如<link rel="stylesheet" href="http://MY_IP/css/style.css">。对于服务器上但不在/var/www/html中的页面,使用/css/style.css是相对链接的相应形式,因为/等同于本地目录/var/www/html(即在Apache中设置DocumentRoot,所以/css访问本地目录/var/www/html/css

您还可以使用页眉中的<base>标记为所有相关链接设置基本href:

<base href="http://MY_IP">

然后,任何相对链接(例如href="css/style.css")都会自动解释为(例如)http://MY_IP/css/style.css

答案 1 :(得分:2)

看起来你把它放在正确的地方。这只是href你错了。

您的Apache配置包含此行

DocumentRoot /var/www/html

这意味着您网站的根目录为/var/www/html。因此,查看网站根目录的URL将转换为该目录中的文件。

href属性是URL,而不是文件路径。因此,如果您将login.css放在此目录中,那么正确的链接将是:

<link rel="stylesheet" type="text/css" href="/login.css" />

但是很多人会把他们的CSS文件放在一个名为/css/的子目录中(它在你的文件系统上映射到/var/www/html/css)。如果你这样做,那么正确的链接就会变成。

<link rel="stylesheet" type="text/css" href="/css/login.css" />