我有几个网站,我帮助管理。在本地机器上运行时(在iis7下),网站在机器d:\WebRoot\TheWebsiteName上的一个文件夹下运行,并以htt://localhost/TheWebsiteName的形式运行,但当它们被部署时,它们以http://www.TheWebsiteName.com的形式运行(也在iis7下运行)
目前,我正在处理通过代码访问网站资源的路径(图像、javascript等)。但我想知道是否有更好的方法来处理这个问题,而不是在网站上编写专门的代码。
谢谢!
发布于 2012-05-15 17:52:00
对于每个网站,在C:\Windows\System32 32\drivers\etc\host中设置一个主机名,作为返回到本地计算机的环:
127.0.0.1 dev.thewebsitename.com
127.0.0.1 dev.thewebsitename.co.uk
127.0.0.1 dev.anotherwebsitename.com这样你就不用为你的网站资源做任何特殊的映射了。然后,您可以在IIS7中设置多个网站,就像在仅为上面指定的urls服务的活动You服务器上所做的那样。然后,您所需要做的就是更改您的web项目的启动url作为新的开发地址,它将全部工作。
然后,我总是按照相同的方式设置不同的测试服务器,所以您所需要做的就是将子域更改为http://uat.thewebsitename.com等。如果您有很多站点,您也可以创建一个包含指向所有不同站点的链接的页面,然后将其标记为书签。
另外,如果您有一个用于图像的CDN,您也可以添加该url作为回送,或者在开发时只上传图像。如果您在本地使用它们,则速度将非常快,但您需要确保在测试时删除该回送。
这对我来说就像一个梦,因为它复制了您的实时服务器,并且在开发时会出现不正确的图像/脚本urls。这确实需要更多的时间来设置,但是是值得的,如果您使用PowerShell编写脚本,那么如果您必须重新设置它或对其他开发人员来说,这不会很痛苦。
发布于 2012-05-15 17:58:43
假设资源是本地的,您应该根本不需要任何特殊的代码--只需使用资源的相对路径,它就可以在任何环境中工作。IE,使用:
<script src = "scripts/whatever.js"></script>不要使用这样的东西:
<script src = "http://mylocalmachinename/scripts/whatever.js"></script>如果您正在使用一个单独的图像域做一些类似CDN的事情,那么您将需要一些代码。
https://softwareengineering.stackexchange.com/questions/148738
复制相似问题