在python cgi中嵌入外部css和脚本显示500内部服务器错误

时间:2014-12-10 14:15:56

标签: python apache cgi cgi-bin

我的程序目录:

     xampp
       |- cgi-bin
            |- home.py
            |- style.css
            |- script.js

在home.py中,我嵌入了style.cssscript.css

print "Content-type:text/html\r\n\r\n"
print '<html>'
print ' <head>'
print '     <meta http-equiv="content-type" content="text/html; charset=UTF-8">'
print '     <title>Home</title>'
print '     <link rel="stylesheet" type="text/css" href="style.css">'
print '     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">           </script>'
print '     <script src="script.js"></script>'

但它不起作用,在我的控制台中显示:

"NetworkError: 500 Internal Server Error - http://localhost/cgi-bin/script.js"&amp; "NetworkError: 500 Internal Server Error - http://localhost/cgi-bin/style.js"

另一个案例:

我在嵌入时尝试了/style.css/script.js

结果

"NetworkError: 404 Not Found - http://localhost/style.css" "NetworkError: 404 Not Found - http://localhost/script.js"

尝试/cgi-bin/style.csscgi-bin/script.css显示带有绝对路径的 500内部服务器错误

尝试使用绝对路径:http://localhost/cgi-bin/style.csshttp://localhost/cgi-bin/script.js也显示相同的 500内部服务器错误

而jquery与CDN一起工作正常。

有什么我没有配置或有其他方法吗?

1 个答案:

答案 0 :(得分:0)

Javascript和CSS不应该在cgi-bin中,它提供文件(通常使用.cgi或 - 在您的情况下 - .py扩展名)作为cgi 脚本。相反,.js.css文件通常位于网站根文件夹中,或者(对于Python应用程序)在my_site_root/html/js/中作为静态文件从应用程序公开可读,如{{1 }}

所以你的cgi-bin不应该通过网络浏览器直接提供文件,比如Javascript和CSS文件。默认情况下,XAMPP将以这种方式设置。

CDN网址始终可以正常工作,因为它正在对外部服务器进行http调用 - 它不会查看本地服务的XAMPP安装。