Instead of:

    /myserver/usr/local/apache/htdocs/images

try putting it in the directory:

    /myserver/usr/local/apache/htdocs/wsgi-practice-scripts/images

Because you have:

    '<div style="background-image: url(images/myimage.jpg)">'

it will resolve as a relative path to the page that is used in, thus:

    /wsgi-practice-scripts/images/myimage.jpg

This is actually bad because if you do the same thing in a different script, 
you will need to create a separate copy for it.

You would be better off using a something that generates an absolute path of:

    /images/myimage.jpg

which means it should then be found at:

    /myserver/usr/local/apache/htdocs/images

Graham

> On 6 Feb 2018, at 4:04 am, Larry Cotton <larry.cot...@gmail.com> wrote:
> 
> Hi
> 
> 
> Because I was not 100% sure where the server would expect it to be I actually 
> have the image in two places, the root of the path specified by the 
> WSGIScriptAliasMatch directive and in DocumentRoot:
> 
> /myserver/usr/local/apache/wsgi-practice-scripts/images
> /myserver/usr/local/apache/htdocs/images
> 
> Thinking the mismatch between DocumentRoot and WSGIScriptAliasMatch as well 
> as using the default port for the VirtualHost may be confusing things I have 
> changed the VirtualHost to using a different port (8085) and setting 
> DocumentRoot to /myserver/usr/local/apache/wsgi-practice-scripts, but I still 
> see the same behaviour.
> 
> I notice from the request headers that when a directory is specified the path 
> information is translated to a fully-qualified file name, not sure what the 
> server does with the path info, but may be that is significant.
> 
> I have built and installed the forensic logging module and when I get time 
> I'll try to use it to have a look at requests more closely.
> 
> On Friday, February 2, 2018 at 10:29:35 PM UTC, Graham Dumpleton wrote:
> 
> In what directory is myimage.jpg? Give full path name.
> 
> Graham
> 
>> On 3 Feb 2018, at 4:14 am, Larry Cotton <larry....@ <>gmail.com 
>> <http://gmail.com/>> wrote:
>> 
>> Hi
>> 
>> Thank you for your reply.
>> 
>> I was naively thinking that because I did not see a request arrive it was 
>> not sent by the browser, but of course it is probably being filtered out by 
>> apache. I have included a summary of the apache configuration I am using in 
>> case there is anything obvious there you can see, but I guess I really need 
>> to gen up on what apache does before the requests are handed to the mod_wsgi 
>> app. A quick google suggests the forensic logging module (mod_log_forensic) 
>> allows logging of requests before and after processing - looks like this 
>> would help.
>> 
>> 
>> DocumentRoot "/myserver/usr/local/apache/htdocs"
>> 
>> <Directory "/myserver/usr/local/apache/htdocs">
>>     Options Indexes FollowSymLinks
>> 
>>     AllowOverride None
>> 
>>     Require all granted
>> </Directory>
>> 
>> <IfModule dir_module>
>>     DirectoryIndex index.html
>> </IfModule>
>> 
>> <VirtualHost *:80>
>> 
>>     ServerName myserver.loc.comp.com <http://myserver.loc.comp.com/>
>>     ServerAlias myserver
>>     ServerAdmin ad...@gmail <>
>>     DocumentRoot "/myserver/usr/local/apache/htdocs"
>> 
>>     <Directory /myserver/usr/local/apache/htdocs>
>>     Options Indexes FollowSymLinks
>>     Require all granted
>>     </Directory>
>> 
>>     WSGIDaemonProcess myserver processes=2 threads=15 display-name=%{GROUP} 
>> maximum-requests=10000 
>> python-path=/myserver/usr/local/apache/wsgi-practice-scripts
>>     WSGIProcessGroup myserver
>> 
>>     WSGIScriptAliasMatch ^/wsgipractice/([^/]+) 
>> /myserver/usr/local/apache/wsgi-practice-scripts/$1.wsgi
>> 
>>     WSGIProcessGroup myserver
>> 
>>     <Directory /myserver/usr/local/apache/wsgi-practice-scripts>
>>     Options Indexes FollowSymLinks
>>     Require all granted
>>     </Directory>
>> 
>> </VirtualHost>
>> 
>> On Thursday, February 1, 2018 at 11:02:29 AM UTC, Graham Dumpleton wrote:
>> 
>> How are you configuring Apache for mod_wsgi?
>> 
>> Your code works, so the problem is likely how you are setting up the serving 
>> of the static file by Apache.
>> 
>> Graham
>> 
>>> On 1 Feb 2018, at 9:14 pm, Larry Cotton <larry....@ <>gmail.com 
>>> <http://gmail.com/>> wrote:
>>> 
>>> Hi
>>> 
>>> Thank you for the reply.
>>> 
>>> One of the reasons I am using mod_wsgi is to be able to understand a bit 
>>> more about what goes on underneath.
>>> 
>>> Thus far I have not had too many problems with mod_wsgi - the tutorials 
>>> give information both on logging requests/responses and debugging the 
>>> pythonry, so I am happy to go with it at the moment. If I get in to real 
>>> difficulty I will take a step back.
>>> 
>>> I already have a mass of stuff using cherrypy (which I understand has a 
>>> hook for mod_wsgi, though I have not tried it yet), does Flask do anything 
>>> different from CherryPy ?
>>> 
>>> 
>>> On Wednesday, January 31, 2018 at 2:11:12 PM UTC, Larry Cotton wrote:
>>> Hi
>>> 
>>> System Info:
>>> 
>>> # cat /etc/redhat-release
>>> Red Hat Enterprise Linux Server release 6.4 (Santiago)
>>> 
>>> # httpd -v
>>> Server version: Apache/2.4.25 (Unix)
>>> Server built:   Jun 27 2017 16:23:25
>>> 
>>> # python --version
>>> Python 2.7.11
>>> 
>>> -------------------------------------------------
>>> 
>>> 
>>> I have set up apache + mod_wsgi and have done some playing with it to help 
>>> get some understanding of how client  and server interact.
>>> 
>>> I am new to mod_wsgi and have not yet used it in anger, but the simple apps 
>>> I have written seem to be working ok.
>>> 
>>> However there is something I would like to understand regarding how the 
>>> browser decides when to render a page.
>>> 
>>> In the simple application below(tst1.wsgi) below I generate a simple html 
>>> page that contains an image, logging the REQUEST_URI
>>> for each request.
>>> 
>>> If, in the browser, I type the url <myserver>/wsgipractice/tst1/index the 
>>> browser attempts to fully render the page and puts in a second request to 
>>> get the image. The log output containing the REQUEST_URIs looks like:
>>> /wsgipractice/tst1/index
>>> /wsgipractice/tst1/images/myimage.jpg
>>> 
>>> If, however, I type only the root url in the browser: 
>>> <myserver>/wsgipractice/tst1 the browser does not seem to attempt to render 
>>> the html page. No second request is put in to fetch the image. The log 
>>> output containing the REQUEST_URIs looks like:
>>> /wsgipractice/tst1
>>> 
>>> It does not seem to matter what comes after tst1 in the url (I can type in 
>>> tst1/bob, or even simply terminate with separator: tst1/).
>>> 
>>> Does anyone know what it is that triggers the browser to fully (or not) 
>>> render a page ?
>>> 
>>> 
>>> tst1.wsgi
>>> ----------
>>> import os
>>> 
>>> def get_page(environ, mime_type):
>>> 
>>>     html_str = \
>>>         ('<html><body>'
>>>          '<center><p style="font-weight:bold;">LARRY HOME</p></center>'
>>>          '<div style="background-image: url(images/myimage.jpg)">'
>>>          '<a href="http://google.com";>' <>
>>>          '<div>Home</div></a>'
>>>          '</div>'
>>>          '<br><p>Body</p><br></body></html>')
>>> 
>>>     return html_str, mime_type
>>> 
>>> def application(environ, start_response):
>>> 
>>>     status = '200 OK'
>>> 
>>>     output = u''
>>> 
>>>     log_file = open(('/logs/tstpagegen.log'), 'a')
>>> 
>>>     log_file.write(environ['REQUEST_URI'] + '\n')
>>> 
>>>     log_file.close()
>>> 
>>>     output, mime_type = get_page(environ, 'text/html')
>>> 
>>>     response_headers = [('Content-type', mime_type),
>>>                         ('Content-Length', str(len(output)))]
>>> 
>>>     start_response(status, response_headers)
>>> 
>>>     return [output]
>>> 
>>> 
>>> -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "modwsgi" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to modwsgi+u...@ <>googlegroups.com <http://googlegroups.com/>.
>>> To post to this group, send email to mod...@ <>googlegroups.com 
>>> <http://googlegroups.com/>.
>>> Visit this group at https://groups.google.com/group/modwsgi 
>>> <https://groups.google.com/group/modwsgi>.
>>> For more options, visit https://groups.google.com/d/optout 
>>> <https://groups.google.com/d/optout>.
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "modwsgi" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to modwsgi+u...@googlegroups.com <>.
>> To post to this group, send email to mod...@googlegroups.com <>.
>> Visit this group at https://groups.google.com/group/modwsgi 
>> <https://groups.google.com/group/modwsgi>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "modwsgi" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to modwsgi+unsubscr...@googlegroups.com 
> <mailto:modwsgi+unsubscr...@googlegroups.com>.
> To post to this group, send email to modwsgi@googlegroups.com 
> <mailto:modwsgi@googlegroups.com>.
> Visit this group at https://groups.google.com/group/modwsgi 
> <https://groups.google.com/group/modwsgi>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to modwsgi+unsubscr...@googlegroups.com.
To post to this group, send email to modwsgi@googlegroups.com.
Visit this group at https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to