我正在研究的网站是在经典ASP中完成的,我正尽力做到最好。我已将它抽象为类似Rails的目录结构:
app_name - app - includes - helpers - lib - partials - public - stylesheets - images - javascripts
我创建了一些类似Rails的助手,例如:
Function ImageTag(ByVal imageFileName, ByVal altText)
path = Server.MapPath(IMAGE_ROOT & imageFileName & ".jpg")
ImageTag = "<img src=""" & path & """ title=""" & altText & """ alt=""" & altText & """ />"
End Function
因此使用:
<%= ImageTag("my_pic") %>
在配置文件中将“IMAGE_ROOT”定义为“../public/images/”。我正在XP上进行开发,因此该站点被设置为虚拟目录。但是,图像根本不会加载到网页上。它正在显示正确的路径,因为我可以将其复制/粘贴到我的浏览器中并查看图像 - 由于某种原因它不会显示在页面上。我的CSS样式表也是如此 - 路径是正确的,但页面根本没有呈现它。
有什么建议吗?
答案 0 :(得分:3)
您可能会遇到混合服务器端和Web目录的问题。
当您可能需要Server.MapPath
时, C:\InetPub\...\public\images\my_pic.jpg
会为您提供 /public/images/my_pic.jpg
。浏览器无法从服务器中获取第一个。
图片必须通过您的域名提供: localhost / public / images / my_pid.jpg 。
我认为,既然您可以查看图像,那么您正在托管它的同一个盒子上进行开发?如果是这种情况,您可以查看图像,因为它刚刚被浏览器打开为本地文件。其他人都必须使用HTTP。
答案 1 :(得分:0)
- 生成的html会出现问题吗?
- 您可能想尝试将IMAGE_ROOT设为绝对路径,例如“/ public / images”而不是相对路径(如果可能)。
- 您还可以查看IIS日志,看看是否有图像和css文件出现404错误。
答案 2 :(得分:0)
如果app_name / app是IIS站点的根目录,那么您必须将app_name / app作为IIS站点中的虚拟目录。由于它只是静态内容,因此您无需执行.asp脚本的权限。
答案 3 :(得分:-1)
在解决这些类型的问题时使用的一个很好的工具是Fiddler。它将直接显示您的Web浏览器和服务器之间的调用和响应。它开箱即用,IE和FireFox支持只是一个配置设置。
我个人使用Fiddler来跟踪图像加载问题,CSS问题,缓存问题,重定向错误,甚至用它来篡改URL变量来尝试破解/黑客攻击我的网站。